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@10:3af708f38a42, 2018-05-03 (annotated)
- Committer:
- RehamFaqehi
- Date:
- Thu May 03 12:07:54 2018 +0000
- Revision:
- 10:3af708f38a42
- Parent:
- 9:e70179ff61c5
- Child:
- 11:cb48d596aa3e
function added for 'back' bottom for freeze the game till the user press start again
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 | 8:13cef7cb872e | 16 | _asteroid1.init(2); | 
| RehamFaqehi | 8:13cef7cb872e | 17 | _asteroid2.init(3); | 
| RehamFaqehi | 8:13cef7cb872e | 18 | _asteroid3.init(4); | 
| RehamFaqehi | 2:3fd0d3d69556 | 19 | } | 
| RehamFaqehi | 2:3fd0d3d69556 | 20 | |
| RehamFaqehi | 2:3fd0d3d69556 | 21 | void GameEngine::read_input(Gamepad &pad) | 
| RehamFaqehi | 2:3fd0d3d69556 | 22 | { | 
| RehamFaqehi | 2:3fd0d3d69556 | 23 | _d = pad.get_direction(); | 
| RehamFaqehi | 2:3fd0d3d69556 | 24 | _mag = pad.get_mag(); | 
| RehamFaqehi | 2:3fd0d3d69556 | 25 | } | 
| RehamFaqehi | 2:3fd0d3d69556 | 26 | |
| RehamFaqehi | 2:3fd0d3d69556 | 27 | void GameEngine::draw(N5110 &lcd) | 
| RehamFaqehi | 2:3fd0d3d69556 | 28 | { | 
| RehamFaqehi | 2:3fd0d3d69556 | 29 | // draw the game elements in the LCD | 
| RehamFaqehi | 2:3fd0d3d69556 | 30 | _rocket.draw(lcd); | 
| RehamFaqehi | 8:13cef7cb872e | 31 | _asteroid1.draw(lcd); | 
| RehamFaqehi | 8:13cef7cb872e | 32 | _asteroid2.draw(lcd); | 
| RehamFaqehi | 8:13cef7cb872e | 33 | _asteroid3.draw(lcd); | 
| RehamFaqehi | 7:06c86ec1f19d | 34 | //print_scores(lcd); | 
| RehamFaqehi | 7:06c86ec1f19d | 35 | print_scores1(lcd); | 
| RehamFaqehi | 2:3fd0d3d69556 | 36 | |
| RehamFaqehi | 2:3fd0d3d69556 | 37 | } | 
| RehamFaqehi | 2:3fd0d3d69556 | 38 | |
| RehamFaqehi | 10:3af708f38a42 | 39 | void GameEngine::update(Gamepad &pad, N5110 &lcd) | 
| RehamFaqehi | 3:489437d4ebd7 | 40 | { | 
| RehamFaqehi | 6:7b733b2a6cf6 | 41 | |
| RehamFaqehi | 6:7b733b2a6cf6 | 42 | check_goal(pad); | 
| RehamFaqehi | 3:489437d4ebd7 | 43 | _rocket.update(_d,_mag, lcd); | 
| RehamFaqehi | 8:13cef7cb872e | 44 | _asteroid1.update(); | 
| RehamFaqehi | 8:13cef7cb872e | 45 | _asteroid2.update(); | 
| RehamFaqehi | 8:13cef7cb872e | 46 | _asteroid3.update(); | 
| RehamFaqehi | 8:13cef7cb872e | 47 | |
| RehamFaqehi | 3:489437d4ebd7 | 48 | } | 
| RehamFaqehi | 6:7b733b2a6cf6 | 49 | |
| RehamFaqehi | 6:7b733b2a6cf6 | 50 | |
| RehamFaqehi | 6:7b733b2a6cf6 | 51 | void GameEngine::check_goal(Gamepad &pad) | 
| RehamFaqehi | 6:7b733b2a6cf6 | 52 | { | 
| RehamFaqehi | 8:13cef7cb872e | 53 | Vector2D _asteroid1_pos = _asteroid1.get_pos() ; | 
| RehamFaqehi | 8:13cef7cb872e | 54 | Vector2D _asteroid2_pos = _asteroid2.get_pos() ; | 
| RehamFaqehi | 8:13cef7cb872e | 55 | Vector2D _asteroid3_pos = _asteroid3.get_pos() ; | 
| RehamFaqehi | 8:13cef7cb872e | 56 | |
| RehamFaqehi | 6:7b733b2a6cf6 | 57 | Vector2D _rocket_pos = _rocket.get_pos(); | 
| RehamFaqehi | 7:06c86ec1f19d | 58 | |
| RehamFaqehi | 8:13cef7cb872e | 59 | if (_rocket_pos.x+11 >=_asteroid1_pos.x && _rocket_pos.x+9 <_asteroid1_pos.x ) {//size //sprint width //float/////////////speed | 
| RehamFaqehi | 8:13cef7cb872e | 60 | if( _asteroid1_pos.y >= _rocket_pos.y && _asteroid1_pos.y <= _rocket_pos.y+7 || _asteroid1_pos.y+7 >= _rocket_pos.y && _asteroid1_pos.y+7 <= _rocket_pos.y+7 ) { | 
| RehamFaqehi | 7:06c86ec1f19d | 61 | _rocket.add_score(); | 
| RehamFaqehi | 7:06c86ec1f19d | 62 | pad.tone(1500.0,0.5); | 
| RehamFaqehi | 7:06c86ec1f19d | 63 | pad.leds_on(); | 
| RehamFaqehi | 7:06c86ec1f19d | 64 | wait(0.5); | 
| RehamFaqehi | 7:06c86ec1f19d | 65 | pad.leds_off(); | 
| RehamFaqehi | 6:7b733b2a6cf6 | 66 | } | 
| RehamFaqehi | 7:06c86ec1f19d | 67 | } | 
| RehamFaqehi | 8:13cef7cb872e | 68 | |
| RehamFaqehi | 8:13cef7cb872e | 69 | if (_rocket_pos.x+11 >=_asteroid2_pos.x && _rocket_pos.x+9 <_asteroid2_pos.x ) {//size //sprint width //float/////////////speed | 
| RehamFaqehi | 8:13cef7cb872e | 70 | if( _asteroid2_pos.y >= _rocket_pos.y && _asteroid2_pos.y <= _rocket_pos.y+7 || _asteroid2_pos.y+7 >= _rocket_pos.y && _asteroid2_pos.y+7 <= _rocket_pos.y+7 ) { | 
| RehamFaqehi | 8:13cef7cb872e | 71 | _rocket.add_score(); | 
| RehamFaqehi | 8:13cef7cb872e | 72 | pad.tone(1500.0,0.5); | 
| RehamFaqehi | 8:13cef7cb872e | 73 | pad.leds_on(); | 
| RehamFaqehi | 8:13cef7cb872e | 74 | wait(0.5); | 
| RehamFaqehi | 8:13cef7cb872e | 75 | pad.leds_off(); | 
| RehamFaqehi | 8:13cef7cb872e | 76 | } | 
| RehamFaqehi | 8:13cef7cb872e | 77 | } | 
| RehamFaqehi | 8:13cef7cb872e | 78 | |
| RehamFaqehi | 8:13cef7cb872e | 79 | if (_rocket_pos.x+11 >=_asteroid3_pos.x && _rocket_pos.x+7 <_asteroid3_pos.x ) {//size //sprint width //float/////////////speed | 
| RehamFaqehi | 8:13cef7cb872e | 80 | if( _asteroid3_pos.y >= _rocket_pos.y && _asteroid3_pos.y <= _rocket_pos.y+7 || _asteroid3_pos.y+7 >= _rocket_pos.y && _asteroid3_pos.y+7 <= _rocket_pos.y+7 ) { | 
| RehamFaqehi | 8:13cef7cb872e | 81 | _rocket.add_score(); | 
| RehamFaqehi | 8:13cef7cb872e | 82 | pad.tone(1500.0,0.5); | 
| RehamFaqehi | 8:13cef7cb872e | 83 | pad.leds_on(); | 
| RehamFaqehi | 8:13cef7cb872e | 84 | wait(0.5); | 
| RehamFaqehi | 8:13cef7cb872e | 85 | pad.leds_off(); | 
| RehamFaqehi | 8:13cef7cb872e | 86 | } | 
| RehamFaqehi | 8:13cef7cb872e | 87 | } | 
| RehamFaqehi | 8:13cef7cb872e | 88 | |
| RehamFaqehi | 6:7b733b2a6cf6 | 89 | } | 
| RehamFaqehi | 8:13cef7cb872e | 90 | |
| RehamFaqehi | 8:13cef7cb872e | 91 | |
| RehamFaqehi | 6:7b733b2a6cf6 | 92 | ////////////////////////////////////////////////////////////////// | 
| RehamFaqehi | 7:06c86ec1f19d | 93 | void GameEngine::print_scores(N5110 &lcd) //this function is not used now | 
| RehamFaqehi | 6:7b733b2a6cf6 | 94 | { | 
| RehamFaqehi | 6:7b733b2a6cf6 | 95 | // get the number of hits | 
| RehamFaqehi | 6:7b733b2a6cf6 | 96 | int _rocket_score = _rocket.get_score(); | 
| RehamFaqehi | 6:7b733b2a6cf6 | 97 | |
| RehamFaqehi | 6:7b733b2a6cf6 | 98 | // print to LCD i | 
| RehamFaqehi | 6:7b733b2a6cf6 | 99 | char buffer1[11]; | 
| RehamFaqehi | 6:7b733b2a6cf6 | 100 | sprintf(buffer1,"hits:%2d",_rocket_score); | 
| RehamFaqehi | 6:7b733b2a6cf6 | 101 | lcd.printString(buffer1,WIDTH/2 - 20, 1); | 
| RehamFaqehi | 7:06c86ec1f19d | 102 | } | 
| RehamFaqehi | 7:06c86ec1f19d | 103 | |
| RehamFaqehi | 7:06c86ec1f19d | 104 | void GameEngine::print_scores1(N5110 &lcd) | 
| RehamFaqehi | 7:06c86ec1f19d | 105 | { | 
| RehamFaqehi | 7:06c86ec1f19d | 106 | // get scores from Rocket | 
| RehamFaqehi | 7:06c86ec1f19d | 107 | int _rocket_score = _rocket.get_score(); | 
| RehamFaqehi | 7:06c86ec1f19d | 108 | // get_score(); | 
| RehamFaqehi | 7:06c86ec1f19d | 109 | if (_rocket_score ==1) { | 
| RehamFaqehi | 7:06c86ec1f19d | 110 | _rocket.drawTwoHearts(lcd); | 
| RehamFaqehi | 7:06c86ec1f19d | 111 | } else if (_rocket_score==0) { | 
| RehamFaqehi | 7:06c86ec1f19d | 112 | _rocket.drawFullHearts(lcd); | 
| RehamFaqehi | 7:06c86ec1f19d | 113 | } else if (_rocket_score == 2) { | 
| RehamFaqehi | 7:06c86ec1f19d | 114 | _rocket.drawOneHeart(lcd); | 
| RehamFaqehi | 7:06c86ec1f19d | 115 | } else { | 
| RehamFaqehi | 9:e70179ff61c5 | 116 | gameOver=1; | 
| RehamFaqehi | 7:06c86ec1f19d | 117 | } | 
| RehamFaqehi | 9:e70179ff61c5 | 118 | } | 
| RehamFaqehi | 9:e70179ff61c5 | 119 | |
| RehamFaqehi | 9:e70179ff61c5 | 120 | int GameEngine::get_gameOver1() | 
| RehamFaqehi | 9:e70179ff61c5 | 121 | { | 
| RehamFaqehi | 9:e70179ff61c5 | 122 | return gameOver; | 
| RehamFaqehi | 6:7b733b2a6cf6 | 123 | } |