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
GameEngine/GameEngine.cpp@7:06c86ec1f19d, 2018-04-24 (annotated)
- Committer:
- RehamFaqehi
- Date:
- Tue Apr 24 10:17:39 2018 +0000
- Revision:
- 7:06c86ec1f19d
- Parent:
- 6:7b733b2a6cf6
- Child:
- 8:13cef7cb872e
representing the hits as 3 hearts instead of showing the number of hits (lose 1 heart in case of hitting)
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| RehamFaqehi | 2:3fd0d3d69556 | 1 | #include "GameEngine.h" |
| RehamFaqehi | 2:3fd0d3d69556 | 2 | |
| RehamFaqehi | 2:3fd0d3d69556 | 3 | GameEngine::GameEngine() |
| RehamFaqehi | 2:3fd0d3d69556 | 4 | { |
| RehamFaqehi | 2:3fd0d3d69556 | 5 | |
| RehamFaqehi | 2:3fd0d3d69556 | 6 | } |
| RehamFaqehi | 2:3fd0d3d69556 | 7 | |
| RehamFaqehi | 2:3fd0d3d69556 | 8 | GameEngine::~GameEngine() |
| RehamFaqehi | 2:3fd0d3d69556 | 9 | { |
| RehamFaqehi | 2:3fd0d3d69556 | 10 | |
| RehamFaqehi | 2:3fd0d3d69556 | 11 | } |
| RehamFaqehi | 2:3fd0d3d69556 | 12 | |
| RehamFaqehi | 2:3fd0d3d69556 | 13 | void GameEngine::init() |
| RehamFaqehi | 2:3fd0d3d69556 | 14 | { |
| RehamFaqehi | 2:3fd0d3d69556 | 15 | _rocket.init(); |
| RehamFaqehi | 6:7b733b2a6cf6 | 16 | _asteroid.init(2); |
| RehamFaqehi | 2:3fd0d3d69556 | 17 | } |
| RehamFaqehi | 2:3fd0d3d69556 | 18 | |
| RehamFaqehi | 2:3fd0d3d69556 | 19 | void GameEngine::read_input(Gamepad &pad) |
| RehamFaqehi | 2:3fd0d3d69556 | 20 | { |
| RehamFaqehi | 2:3fd0d3d69556 | 21 | _d = pad.get_direction(); |
| RehamFaqehi | 2:3fd0d3d69556 | 22 | _mag = pad.get_mag(); |
| RehamFaqehi | 2:3fd0d3d69556 | 23 | } |
| RehamFaqehi | 2:3fd0d3d69556 | 24 | |
| RehamFaqehi | 2:3fd0d3d69556 | 25 | void GameEngine::draw(N5110 &lcd) |
| RehamFaqehi | 2:3fd0d3d69556 | 26 | { |
| RehamFaqehi | 2:3fd0d3d69556 | 27 | // draw the game elements in the LCD |
| RehamFaqehi | 2:3fd0d3d69556 | 28 | _rocket.draw(lcd); |
| RehamFaqehi | 4:8c6723798227 | 29 | _asteroid.draw(lcd); |
| RehamFaqehi | 7:06c86ec1f19d | 30 | //print_scores(lcd); |
| RehamFaqehi | 7:06c86ec1f19d | 31 | print_scores1(lcd); |
| RehamFaqehi | 2:3fd0d3d69556 | 32 | |
| RehamFaqehi | 2:3fd0d3d69556 | 33 | } |
| RehamFaqehi | 2:3fd0d3d69556 | 34 | |
| RehamFaqehi | 3:489437d4ebd7 | 35 | void GameEngine::update(Gamepad &pad, N5110 &lcd) |
| RehamFaqehi | 3:489437d4ebd7 | 36 | { |
| RehamFaqehi | 6:7b733b2a6cf6 | 37 | |
| RehamFaqehi | 6:7b733b2a6cf6 | 38 | check_goal(pad); |
| RehamFaqehi | 3:489437d4ebd7 | 39 | _rocket.update(_d,_mag, lcd); |
| RehamFaqehi | 5:b230e79d36d6 | 40 | _asteroid.update(); |
| RehamFaqehi | 3:489437d4ebd7 | 41 | } |
| RehamFaqehi | 6:7b733b2a6cf6 | 42 | |
| RehamFaqehi | 6:7b733b2a6cf6 | 43 | |
| RehamFaqehi | 6:7b733b2a6cf6 | 44 | void GameEngine::check_goal(Gamepad &pad) |
| RehamFaqehi | 6:7b733b2a6cf6 | 45 | { |
| RehamFaqehi | 6:7b733b2a6cf6 | 46 | Vector2D _asteroid_pos = _asteroid.get_pos() ; |
| RehamFaqehi | 6:7b733b2a6cf6 | 47 | |
| RehamFaqehi | 6:7b733b2a6cf6 | 48 | Vector2D _rocket_pos = _rocket.get_pos(); |
| RehamFaqehi | 7:06c86ec1f19d | 49 | |
| RehamFaqehi | 7:06c86ec1f19d | 50 | if (_rocket_pos.x+11 >=_asteroid_pos.x && _rocket_pos.x+9 <_asteroid_pos.x ) {//size //sprint width //float/////////////speed |
| RehamFaqehi | 7:06c86ec1f19d | 51 | if( _asteroid_pos.y >= _rocket_pos.y && _asteroid_pos.y <= _rocket_pos.y+7 || _asteroid_pos.y+7 >= _rocket_pos.y && _asteroid_pos.y+7 <= _rocket_pos.y+7 ) { |
| RehamFaqehi | 7:06c86ec1f19d | 52 | _rocket.add_score(); |
| RehamFaqehi | 7:06c86ec1f19d | 53 | pad.tone(1500.0,0.5); |
| RehamFaqehi | 7:06c86ec1f19d | 54 | pad.leds_on(); |
| RehamFaqehi | 7:06c86ec1f19d | 55 | wait(0.5); |
| RehamFaqehi | 7:06c86ec1f19d | 56 | pad.leds_off(); |
| RehamFaqehi | 6:7b733b2a6cf6 | 57 | } |
| RehamFaqehi | 7:06c86ec1f19d | 58 | } |
| RehamFaqehi | 6:7b733b2a6cf6 | 59 | } |
| RehamFaqehi | 6:7b733b2a6cf6 | 60 | ////////////////////////////////////////////////////////////////// |
| RehamFaqehi | 7:06c86ec1f19d | 61 | void GameEngine::print_scores(N5110 &lcd) //this function is not used now |
| RehamFaqehi | 6:7b733b2a6cf6 | 62 | { |
| RehamFaqehi | 6:7b733b2a6cf6 | 63 | // get the number of hits |
| RehamFaqehi | 6:7b733b2a6cf6 | 64 | int _rocket_score = _rocket.get_score(); |
| RehamFaqehi | 6:7b733b2a6cf6 | 65 | |
| RehamFaqehi | 6:7b733b2a6cf6 | 66 | // print to LCD i |
| RehamFaqehi | 6:7b733b2a6cf6 | 67 | char buffer1[11]; |
| RehamFaqehi | 6:7b733b2a6cf6 | 68 | sprintf(buffer1,"hits:%2d",_rocket_score); |
| RehamFaqehi | 6:7b733b2a6cf6 | 69 | lcd.printString(buffer1,WIDTH/2 - 20, 1); |
| RehamFaqehi | 7:06c86ec1f19d | 70 | } |
| RehamFaqehi | 7:06c86ec1f19d | 71 | |
| RehamFaqehi | 7:06c86ec1f19d | 72 | void GameEngine::print_scores1(N5110 &lcd) |
| RehamFaqehi | 7:06c86ec1f19d | 73 | { |
| RehamFaqehi | 7:06c86ec1f19d | 74 | // get scores from Rocket |
| RehamFaqehi | 7:06c86ec1f19d | 75 | int _rocket_score = _rocket.get_score(); |
| RehamFaqehi | 7:06c86ec1f19d | 76 | // get_score(); |
| RehamFaqehi | 7:06c86ec1f19d | 77 | if (_rocket_score ==1) { |
| RehamFaqehi | 7:06c86ec1f19d | 78 | _rocket.drawTwoHearts(lcd); |
| RehamFaqehi | 7:06c86ec1f19d | 79 | } else if (_rocket_score==0) { |
| RehamFaqehi | 7:06c86ec1f19d | 80 | _rocket.drawFullHearts(lcd); |
| RehamFaqehi | 7:06c86ec1f19d | 81 | } else if (_rocket_score == 2) { |
| RehamFaqehi | 7:06c86ec1f19d | 82 | _rocket.drawOneHeart(lcd); |
| RehamFaqehi | 7:06c86ec1f19d | 83 | } else { |
| RehamFaqehi | 7:06c86ec1f19d | 84 | _rocket.drawOneHeart(lcd); |
| RehamFaqehi | 7:06c86ec1f19d | 85 | } |
| RehamFaqehi | 6:7b733b2a6cf6 | 86 | } |