ELEC2645 (2017/18) / Mbed 2 deprecated el17yw

Dependencies:   mbed

Revision:
5:0a116644cce2
Parent:
4:55d904040636
Child:
6:46d0caedf217
--- a/engine/engine.cpp	Mon Apr 16 00:11:15 2018 +0000
+++ b/engine/engine.cpp	Mon Apr 16 09:57:57 2018 +0000
@@ -10,7 +10,7 @@
 
 }
 
-void engine::init(int rect_height,int speed,int rect_width)
+void engine::init(int speed)
 {
     // initialise the game parameters
     _speed = speed;
@@ -39,7 +39,56 @@
 {
     _rect.update(_d,_mag);
     _boom.update();
-
+    
+    check_boom_collision(pad);
+    check_wall_collision(pad);
    
 }
 
+void engine::check_wall_collision(Gamepad &pad)
+{
+    Vector2D boom_pos = _boom.get_pos();
+    Vector2D rect_pos = _rect.get_pos();
+    
+    if (boom_pos.y > 48) {
+        
+        boom_pos.y = 0;
+        boom_pos.x = rand()%84;
+        
+    }
+
+    if (boom_pos.x == 84) {
+        boom_pos.x = 81;
+    }
+    
+    if (boom_pos.x <2){
+        boom_pos.x = 3;
+    }  
+    _boom.set_pos(boom_pos); 
+    _rect.set_pos(rect_pos);   
+    
+    
+}
+void engine::check_boom_collision(Gamepad &pad)
+{
+    Vector2D boom_pos = _boom.get_pos();
+    Vector2D rect_pos = _rect.get_pos();
+    
+    if (
+       (boom_pos.y+3 == rect_pos.x+3)&&
+       (boom_pos.y+3 == rect_pos.x+4)&&
+       (boom_pos.y+3 == rect_pos.x+5)&&
+       (boom_pos.y+3 == rect_pos.x+6)
+       )
+    {
+     boom_pos.y = 0;   
+     pad.tone(750.0,0.1);
+    } 
+    _boom.set_pos(boom_pos); 
+    _rect.set_pos(rect_pos);      
+
+
+
+}
+
+