ELEC2645 (2018/19) / Mbed 2 deprecated el17set_

Dependencies:   mbed

Revision:
22:8e38efeae0c9
Parent:
21:7d4827af00d6
Child:
23:5e8a435e568f
--- a/Game/Game.cpp	Wed May 08 23:17:35 2019 +0000
+++ b/Game/Game.cpp	Thu May 09 12:10:56 2019 +0000
@@ -1,135 +1,176 @@
 #include "Game.h"
 
-Game::Game(){
-    
-}
-
-Game::~Game(){
-
-}
-
-void Game::init(){
-    smiley.init(x,y);
-    _lives = 10;
-    coin = 0;
-    coin1.init(41,42);
-    coin2.init(41,23);
-    coin3.init(78,42);
-    coin4.init(22,34);
-    coin5.init(22,12);
-    coin6.init(59,12);
-    coin7.init(59,34);
-    coin8.init(78,14);
-    coin9.init(78,4);
-    coin10.init(41,4);
-    coin11.init(4,4);
-    coin12.init(78,23);
-    coin13.init(13,14);
-    enemyA.init(28,18);
-    enemy1.init(58,31);
-    enemyB.init(67,20);
-    enemy2.init(67,12);
+Game::Game()
+{
     
 }
 
-void Game::dirmag(Gamepad &pad){
-    dir = pad.get_direction();
+Game::~Game()
+{
+
 }
 
-void Game::drawSprite(N5110 &lcd){
-    maze.drawSprite(lcd);
-    coin1.drawSprite(lcd);
-    coin2.drawSprite(lcd);
-    coin3.drawSprite(lcd);
-    coin4.drawSprite(lcd);
-    coin5.drawSprite(lcd);
-    coin6.drawSprite(lcd);
-    coin7.drawSprite(lcd);
-    coin8.drawSprite(lcd);
-    coin9.drawSprite(lcd);
-    coin10.drawSprite(lcd);
-    coin11.drawSprite(lcd);
-    coin12.drawSprite(lcd);
-    coin13.drawSprite(lcd);
-    enemyA.drawSpriteA(lcd);
-    enemy1.drawSprite1(lcd);
-    enemyB.drawSpriteB(lcd);
-    enemy2.drawSprite2(lcd);
-    smiley.drawSprite(lcd);
+void Game::init()
+{
+  // set character coordinates and health //
+  smiley.init(x, y);
+  _lives = 10;
+
+  // initialise all coin coordinates //
+  coin1.init(41, 42);
+  coin2.init(41, 23);
+  coin3.init(78, 42);
+  coin4.init(22, 34);
+  coin5.init(22, 12);
+  coin6.init(59, 12);
+  coin7.init(59, 34);
+  coin8.init(78, 14);
+  coin9.init(78, 4);
+  coin10.init(41, 4);
+  coin11.init(4, 4);
+  coin12.init(78, 23);
+  coin13.init(13, 14);
+
+  // initialise all enemy coordinates //
+  enemyA.init(28, 18);
+  enemy1.init(58, 31);
+  enemyB.init(67, 20);
+  enemy2.init(67, 12);
+  enemyC.init(1, 1);  
 }
 
-void Game::movement(N5110 &lcd, Gamepad &pad){
-    smiley.movement(dir,lcd);
-    enemyA.movementA(lcd);
-    enemy1.movement1(lcd);
-    enemyB.movementB(lcd);
-    enemy2.movement2(lcd);
+int Game::get_lives()
+{
+  return _lives;
+}
+
+void Game::direc(Gamepad &pad)
+{
+  dir = pad.get_direction();
+}
+
+void Game::display_health(N5110 &lcd)
+{
+  // displays updating health value on screen //
+  char buffer[14];
+  sprintf(buffer,"%d",_lives);
+  lcd.printString(buffer,0,5);
 }
 
-void Game::collect(N5110 &lcd, Gamepad &pad){
-    int x = smiley.get_x_char();
-    int y = smiley.get_y_char();
-    coin1.spawn(x, y, lcd, pad);
-    coin2.spawn(x, y, lcd, pad);
-    coin3.spawn(x, y, lcd, pad);
-    coin4.spawn(x, y, lcd, pad);
-    coin5.spawn(x, y, lcd, pad);   
-    coin6.spawn(x, y, lcd, pad);
-    coin7.spawn(x, y, lcd, pad);
-    coin8.spawn(x, y, lcd, pad);
-    coin9.spawn(x, y, lcd, pad);
-    coin10.spawn(x, y, lcd, pad);
-    coin11.spawn(x, y, lcd, pad);
-    coin12.spawn(x, y, lcd, pad);   
-    coin13.spawn(x, y, lcd, pad);
+/*void Game::display_coins(N5110 &lcd)
+{
+  int coins = coin0.get_coins();
+  char buffer[14];
+  sprintf(buffer,"%d",coins);
+  lcd.printString(buffer,0,4);
+}
+*/
+
+void Game::drawSprite(N5110 &lcd)
+{
+  // draws maze //
+  maze.drawSprite(lcd);
+  
+  // draws all coins //
+  coin1.drawSprite(lcd);
+  coin2.drawSprite(lcd);
+  coin3.drawSprite(lcd);
+  coin4.drawSprite(lcd);
+  coin5.drawSprite(lcd);
+  coin6.drawSprite(lcd);
+  coin7.drawSprite(lcd);
+  coin8.drawSprite(lcd);
+  coin9.drawSprite(lcd);
+  coin10.drawSprite(lcd);
+  coin11.drawSprite(lcd);
+  coin12.drawSprite(lcd);
+  coin13.drawSprite(lcd);
+  
+  // draws all enemies //
+  enemyA.drawSpriteA(lcd);
+  enemy1.drawSprite1(lcd);
+  enemyB.drawSpriteB(lcd);
+  enemy2.drawSprite2(lcd);
+  enemyC.drawSpriteC(lcd);
+  smiley.drawSprite(lcd);
 }
 
-void Game::win(N5110 &lcd){
-    if (coin == 1) {
-        lcd.clear();
-        lcd.printString("YOU",30,2);
-        lcd.printString("WIN",30,3);
-        lcd.printString(":)",30,3);
-        lcd.refresh();
-        wait(2);
-    }
+void Game::movement(N5110 &lcd, Gamepad &pad)
+{
+  // all sprite movement //
+  smiley.movement(dir, lcd);
+  enemyA.movementA(lcd);
+  enemy1.movement1(lcd);
+  enemyB.movementB(lcd);
+  enemy2.movement2(lcd);
+  enemyC.movementC(lcd);
 }
 
-void Game::damage(N5110 &lcd, Gamepad &pad){
-    int x = smiley.get_x_char();
-    int y = smiley.get_y_char();
-    if (enemyA.collidePlayer(x, y, pad) == true ||enemy1.collidePlayer(x, y, pad) == true || enemy2.collidePlayer(x, y, pad) == true ){
-        _lives--;
-        wait(0.1);
-    }
+void Game::collect(N5110 &lcd, Gamepad &pad)
+{
+  // detects whether the coin needs to be respawned //
+  int x = smiley.get_x_char();
+  int y = smiley.get_y_char();
+  coin1.spawn(x, y, lcd, pad);
+  coin2.spawn(x, y, lcd, pad);
+  coin3.spawn(x, y, lcd, pad);
+  coin4.spawn(x, y, lcd, pad);
+  coin5.spawn(x, y, lcd, pad);   
+  coin6.spawn(x, y, lcd, pad);
+  coin7.spawn(x, y, lcd, pad);
+  coin8.spawn(x, y, lcd, pad);
+  coin9.spawn(x, y, lcd, pad);
+  coin10.spawn(x, y, lcd, pad);
+  coin11.spawn(x, y, lcd, pad);
+  coin12.spawn(x, y, lcd, pad);   
+  coin13.spawn(x, y, lcd, pad);
+  
+}
+
+void Game::win(N5110 &lcd)
+{
+  // detects a win and displays win screen //
+  if (coin == 1) {
+    lcd.clear();
+    lcd.printString("YOU",30,2);
+    lcd.printString("WIN",30,3);
+    lcd.printString(":)",30,3);
+    lcd.refresh();
+    wait(2);
+  }
 }
 
-void Game::death(N5110 &lcd){
-    if (_lives == 0) {
-        lcd.clear();
-        lcd.printString("PUT",30,1);
-        lcd.printString("ON",30,2);
-        lcd.printString("TIMEOUT",30,3);
-        lcd.printString(":(",30,4);
-        lcd.refresh();
-        wait(2);
-    }
+void Game::damage(N5110 &lcd, Gamepad &pad)
+{
+  // if collision with enemy detected -1 live //
+  int x = smiley.get_x_char();
+  int y = smiley.get_y_char();
+  if (enemyA.collidePlayer(x, y, pad) == true ||
+      enemy1.collidePlayer(x, y, pad) == true ||
+      enemyB.collidePlayer(x, y, pad) == true ||
+      enemy2.collidePlayer(x, y, pad) == true ||
+      enemyC.collidePlayer(x, y, pad) == true) {
+    _lives--;
+    wait(0.1);
+  }
 }
 
-void Game::UI(Gamepad &pad, N5110 &lcd){
-    menu.main(lcd,pad);   
-}
-
-int Game::get_lives() {
-    return _lives;
+void Game::death(N5110 &lcd)
+{
+  // detects a loss and displays game over screen //
+  if (_lives == 0) {
+    lcd.clear();
+    lcd.printString("PUT",30,1);
+    lcd.printString("ON",30,2);
+    lcd.printString("TIMEOUT",30,3);
+    lcd.printString(":(",30,4);
+    lcd.refresh();
+    wait(2);
+  }
 }
 
-int Game::get_coins() {
-    return coin;
-}
-
-void Game::display_health(N5110 &lcd) {
-    char buffer[14];
-    sprintf(buffer,"%d",_lives);
-    lcd.printString(buffer,0,5);
+void Game::UI(N5110 &lcd, Gamepad &pad)
+{
+  // function to call on main menu in main //
+  menu.main(lcd,pad);   
 }
\ No newline at end of file