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
Game/Game.cpp@19:1073cc64cb0b, 2019-05-08 (annotated)
- Committer:
- S_Tingle
- Date:
- Wed May 08 18:12:27 2019 +0000
- Revision:
- 19:1073cc64cb0b
- Parent:
- 18:ba4159ab4da7
- Child:
- 20:ad13b0fdd8ff
added all coin collisions + health display
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
S_Tingle | 5:e6cb6fda5b37 | 1 | #include "Game.h" |
S_Tingle | 5:e6cb6fda5b37 | 2 | |
S_Tingle | 5:e6cb6fda5b37 | 3 | Game::Game(){ |
S_Tingle | 17:ce6b54422113 | 4 | |
S_Tingle | 5:e6cb6fda5b37 | 5 | } |
S_Tingle | 5:e6cb6fda5b37 | 6 | |
S_Tingle | 5:e6cb6fda5b37 | 7 | Game::~Game(){ |
S_Tingle | 5:e6cb6fda5b37 | 8 | |
S_Tingle | 5:e6cb6fda5b37 | 9 | } |
S_Tingle | 5:e6cb6fda5b37 | 10 | |
S_Tingle | 5:e6cb6fda5b37 | 11 | void Game::init(){ |
S_Tingle | 5:e6cb6fda5b37 | 12 | smiley.init(x,y); |
S_Tingle | 19:1073cc64cb0b | 13 | _lives = 10; |
S_Tingle | 18:ba4159ab4da7 | 14 | coin1.init(41, 42); |
S_Tingle | 18:ba4159ab4da7 | 15 | coin2.init(41, 23); |
S_Tingle | 19:1073cc64cb0b | 16 | coin3.init(78, 42); |
S_Tingle | 19:1073cc64cb0b | 17 | coin4.init(31, 35); |
S_Tingle | 5:e6cb6fda5b37 | 18 | } |
S_Tingle | 5:e6cb6fda5b37 | 19 | |
S_Tingle | 5:e6cb6fda5b37 | 20 | void Game::dirmag(Gamepad &pad){ |
S_Tingle | 5:e6cb6fda5b37 | 21 | dir = pad.get_direction(); |
S_Tingle | 5:e6cb6fda5b37 | 22 | mag = pad.get_mag(); |
S_Tingle | 5:e6cb6fda5b37 | 23 | } |
S_Tingle | 5:e6cb6fda5b37 | 24 | |
S_Tingle | 5:e6cb6fda5b37 | 25 | void Game::drawSprite(N5110 &lcd){ |
S_Tingle | 5:e6cb6fda5b37 | 26 | maze.drawSprite(lcd); |
S_Tingle | 11:953141c3f7dd | 27 | enemy1.drawSprite(lcd); |
S_Tingle | 12:200a1266ceee | 28 | enemy2.drawSprite(lcd); |
S_Tingle | 18:ba4159ab4da7 | 29 | coin1.drawSprite(lcd); |
S_Tingle | 18:ba4159ab4da7 | 30 | coin2.drawSprite(lcd); |
S_Tingle | 18:ba4159ab4da7 | 31 | coin3.drawSprite(lcd); |
S_Tingle | 19:1073cc64cb0b | 32 | coin4.drawSprite(lcd); |
S_Tingle | 5:e6cb6fda5b37 | 33 | smiley.drawSprite(lcd); |
S_Tingle | 5:e6cb6fda5b37 | 34 | } |
S_Tingle | 5:e6cb6fda5b37 | 35 | |
S_Tingle | 17:ce6b54422113 | 36 | void Game::movement(Gamepad &pad, N5110 &lcd){ |
S_Tingle | 17:ce6b54422113 | 37 | smiley.movement(dir,lcd); |
S_Tingle | 17:ce6b54422113 | 38 | enemy1.movement(lcd); |
S_Tingle | 17:ce6b54422113 | 39 | enemy2.movement(lcd); |
S_Tingle | 17:ce6b54422113 | 40 | } |
S_Tingle | 17:ce6b54422113 | 41 | |
S_Tingle | 16:37d98c281eb3 | 42 | void Game::collect(N5110 &lcd, Gamepad &pad){ |
S_Tingle | 16:37d98c281eb3 | 43 | int x = smiley.get_x_char(); |
S_Tingle | 16:37d98c281eb3 | 44 | int y = smiley.get_y_char(); |
S_Tingle | 18:ba4159ab4da7 | 45 | coin1.spawn(x, y, lcd, pad); |
S_Tingle | 19:1073cc64cb0b | 46 | coin2.spawn(x, y, lcd, pad); |
S_Tingle | 19:1073cc64cb0b | 47 | coin3.spawn(x, y, lcd, pad); |
S_Tingle | 19:1073cc64cb0b | 48 | coin4.spawn(x, y, lcd, pad); |
S_Tingle | 15:a080c64cf301 | 49 | } |
S_Tingle | 15:a080c64cf301 | 50 | |
S_Tingle | 16:37d98c281eb3 | 51 | void Game::damage(N5110 &lcd, Gamepad &pad){ |
S_Tingle | 16:37d98c281eb3 | 52 | int x = smiley.get_x_char(); |
S_Tingle | 16:37d98c281eb3 | 53 | int y = smiley.get_y_char(); |
S_Tingle | 16:37d98c281eb3 | 54 | if (enemy1.collidePlayer(x, y, pad) == true || enemy2.collidePlayer(x, y, pad) == true ){ |
S_Tingle | 16:37d98c281eb3 | 55 | _lives--; |
S_Tingle | 19:1073cc64cb0b | 56 | wait(0.1); |
S_Tingle | 16:37d98c281eb3 | 57 | } |
S_Tingle | 16:37d98c281eb3 | 58 | } |
S_Tingle | 16:37d98c281eb3 | 59 | |
S_Tingle | 17:ce6b54422113 | 60 | void Game::death(N5110 &lcd, Gamepad &pad){ |
S_Tingle | 17:ce6b54422113 | 61 | if (_lives == 0) { |
S_Tingle | 17:ce6b54422113 | 62 | lcd.clear(); |
S_Tingle | 17:ce6b54422113 | 63 | lcd.printString("YOU",30,2); |
S_Tingle | 17:ce6b54422113 | 64 | lcd.printString("DIED",30,3); |
S_Tingle | 17:ce6b54422113 | 65 | lcd.refresh(); |
S_Tingle | 17:ce6b54422113 | 66 | wait(1); |
S_Tingle | 16:37d98c281eb3 | 67 | } |
S_Tingle | 16:37d98c281eb3 | 68 | } |
S_Tingle | 16:37d98c281eb3 | 69 | |
S_Tingle | 16:37d98c281eb3 | 70 | void Game::UI(Gamepad &pad, N5110 &lcd){ |
S_Tingle | 17:ce6b54422113 | 71 | menu.main(lcd,pad); |
S_Tingle | 17:ce6b54422113 | 72 | } |
S_Tingle | 17:ce6b54422113 | 73 | |
S_Tingle | 17:ce6b54422113 | 74 | int Game::get_lives() { |
S_Tingle | 17:ce6b54422113 | 75 | return _lives; |
S_Tingle | 19:1073cc64cb0b | 76 | } |
S_Tingle | 19:1073cc64cb0b | 77 | |
S_Tingle | 19:1073cc64cb0b | 78 | void Game::display_health(N5110 &lcd) { |
S_Tingle | 19:1073cc64cb0b | 79 | char buffer[14]; |
S_Tingle | 19:1073cc64cb0b | 80 | sprintf(buffer,"%d",_lives); |
S_Tingle | 19:1073cc64cb0b | 81 | lcd.printString(buffer,2,5); |
S_Tingle | 5:e6cb6fda5b37 | 82 | } |