ELEC2645 (2017/18) / Mbed 2 deprecated fy15raf

Dependencies:   mbed

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?

UserRevisionLine numberNew 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 }