Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Diff: Game/Game.cpp
- Revision:
- 22:8e38efeae0c9
- Parent:
- 21:7d4827af00d6
- Child:
- 23:5e8a435e568f
diff -r 7d4827af00d6 -r 8e38efeae0c9 Game/Game.cpp --- 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