ELEC2645 (2017/18) / Mbed 2 deprecated fy15raf

Dependencies:   mbed

Revision:
6:7b733b2a6cf6
Parent:
5:b230e79d36d6
Child:
7:06c86ec1f19d
diff -r b230e79d36d6 -r 7b733b2a6cf6 GameEngine/GameEngine.cpp
--- a/GameEngine/GameEngine.cpp	Thu Apr 19 17:46:28 2018 +0000
+++ b/GameEngine/GameEngine.cpp	Fri Apr 20 21:03:05 2018 +0000
@@ -13,7 +13,7 @@
 void GameEngine::init()
 {
     _rocket.init();
-    _asteroid.init(3);
+    _asteroid.init(2);
 }
 
 void GameEngine::read_input(Gamepad &pad)
@@ -27,11 +27,43 @@
     // draw the game elements in the LCD
     _rocket.draw(lcd);
     _asteroid.draw(lcd);
+    print_scores(lcd);
   
 }
 
 void GameEngine::update(Gamepad &pad, N5110 &lcd)
 {
+    
+    check_goal(pad);
     _rocket.update(_d,_mag, lcd);
     _asteroid.update();
 }
+
+
+void GameEngine::check_goal(Gamepad &pad)
+{
+    Vector2D _asteroid_pos = _asteroid.get_pos() ;
+
+    Vector2D _rocket_pos = _rocket.get_pos();
+    
+    if (_rocket_pos.x+11 >=_asteroid_pos.x && _rocket_pos.x+9 <_asteroid_pos.x ) {//size //sprint width //float/////////////speed 
+        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 ){
+        _rocket.add_score();
+        pad.tone(1500.0,0.5);
+        pad.leds_on();
+        wait(0.5);
+        pad.leds_off();
+        }
+  }
+}
+ //////////////////////////////////////////////////////////////////   
+void GameEngine::print_scores(N5110 &lcd)
+{
+    // get the number of hits
+    int _rocket_score = _rocket.get_score();
+
+    // print to LCD i
+    char buffer1[11];
+    sprintf(buffer1,"hits:%2d",_rocket_score);
+    lcd.printString(buffer1,WIDTH/2 - 20, 1);    
+}
\ No newline at end of file