ELEC2645 (2017/18) / Mbed 2 deprecated fy15raf

Dependencies:   mbed

Committer:
RehamFaqehi
Date:
Fri Apr 20 21:03:05 2018 +0000
Revision:
6:7b733b2a6cf6
Parent:
5:b230e79d36d6
Child:
7:06c86ec1f19d
get positions of the asteroid and the rocket added with comparing function to get the number of hits

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 6:7b733b2a6cf6 30 print_scores(lcd);
RehamFaqehi 2:3fd0d3d69556 31
RehamFaqehi 2:3fd0d3d69556 32 }
RehamFaqehi 2:3fd0d3d69556 33
RehamFaqehi 3:489437d4ebd7 34 void GameEngine::update(Gamepad &pad, N5110 &lcd)
RehamFaqehi 3:489437d4ebd7 35 {
RehamFaqehi 6:7b733b2a6cf6 36
RehamFaqehi 6:7b733b2a6cf6 37 check_goal(pad);
RehamFaqehi 3:489437d4ebd7 38 _rocket.update(_d,_mag, lcd);
RehamFaqehi 5:b230e79d36d6 39 _asteroid.update();
RehamFaqehi 3:489437d4ebd7 40 }
RehamFaqehi 6:7b733b2a6cf6 41
RehamFaqehi 6:7b733b2a6cf6 42
RehamFaqehi 6:7b733b2a6cf6 43 void GameEngine::check_goal(Gamepad &pad)
RehamFaqehi 6:7b733b2a6cf6 44 {
RehamFaqehi 6:7b733b2a6cf6 45 Vector2D _asteroid_pos = _asteroid.get_pos() ;
RehamFaqehi 6:7b733b2a6cf6 46
RehamFaqehi 6:7b733b2a6cf6 47 Vector2D _rocket_pos = _rocket.get_pos();
RehamFaqehi 6:7b733b2a6cf6 48
RehamFaqehi 6:7b733b2a6cf6 49 if (_rocket_pos.x+11 >=_asteroid_pos.x && _rocket_pos.x+9 <_asteroid_pos.x ) {//size //sprint width //float/////////////speed
RehamFaqehi 6:7b733b2a6cf6 50 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 6:7b733b2a6cf6 51 _rocket.add_score();
RehamFaqehi 6:7b733b2a6cf6 52 pad.tone(1500.0,0.5);
RehamFaqehi 6:7b733b2a6cf6 53 pad.leds_on();
RehamFaqehi 6:7b733b2a6cf6 54 wait(0.5);
RehamFaqehi 6:7b733b2a6cf6 55 pad.leds_off();
RehamFaqehi 6:7b733b2a6cf6 56 }
RehamFaqehi 6:7b733b2a6cf6 57 }
RehamFaqehi 6:7b733b2a6cf6 58 }
RehamFaqehi 6:7b733b2a6cf6 59 //////////////////////////////////////////////////////////////////
RehamFaqehi 6:7b733b2a6cf6 60 void GameEngine::print_scores(N5110 &lcd)
RehamFaqehi 6:7b733b2a6cf6 61 {
RehamFaqehi 6:7b733b2a6cf6 62 // get the number of hits
RehamFaqehi 6:7b733b2a6cf6 63 int _rocket_score = _rocket.get_score();
RehamFaqehi 6:7b733b2a6cf6 64
RehamFaqehi 6:7b733b2a6cf6 65 // print to LCD i
RehamFaqehi 6:7b733b2a6cf6 66 char buffer1[11];
RehamFaqehi 6:7b733b2a6cf6 67 sprintf(buffer1,"hits:%2d",_rocket_score);
RehamFaqehi 6:7b733b2a6cf6 68 lcd.printString(buffer1,WIDTH/2 - 20, 1);
RehamFaqehi 6:7b733b2a6cf6 69 }