ELEC2645 (2018/19) / Mbed 2 deprecated el17aio

Dependencies:   mbed

Revision:
26:a53d41adf40b
Parent:
25:faba9eb44514
Child:
27:f99249e727fd
--- a/RosenEngine/RosenEngine.cpp	Thu Apr 18 06:53:52 2019 +0000
+++ b/RosenEngine/RosenEngine.cpp	Thu Apr 18 11:40:47 2019 +0000
@@ -40,12 +40,17 @@
     _enemy.draw_seeker(lcd);
     if(_shipno == 0) {
         _ship.set_dimensions(9,6);
-        _ship.draw_ship(lcd);
+        _ship.draw_ship(lcd,_shipno);
         _weapons.draw(lcd,pad,_shipno);
     }
     if(_shipno == 1) {
         _ship.set_dimensions(7,10);
-        _ship.draw_imperion(lcd);
+        _ship.draw_ship(lcd,_shipno);
+        _weapons.draw(lcd,pad,_shipno);
+    }
+    if(_shipno == 2) {
+        _ship.set_dimensions(7,10);
+        _ship.draw_ship(lcd,_shipno);
         _weapons.draw(lcd,pad,_shipno);
     }
 }
@@ -63,8 +68,17 @@
     }
     // _menu.update(_d);
 
-    check_enemy_ship_collision();
-    check_enemy_projectile_collision();
+    if(enemy_ship_collision() == true){
+        _health.update(1);
+        _enemy.reset_seeker();
+        }
+    if(enemy_projectile_collision() == true){
+        _enemy.reset_seeker();
+            pad.tone(1000,0.05);
+            wait(0.05);
+            pad.tone(1500,0.05);
+            wait(0.05);
+        }
     // printf("collision check complete");
 }
 void RosenEngine::get_pos()
@@ -104,7 +118,7 @@
     _menu.update(_d);
     _menu.disp_ships(lcd);
 }
-void RosenEngine::check_enemy_ship_collision()
+bool RosenEngine::enemy_ship_collision()
 {
     // Vector2D ship_pos = _ship.get_pos();
     Vector2D seeker_pos = _enemy.get_seekerpos();
@@ -144,11 +158,12 @@
 
     printf("sxcol = %d, sycol = %d\n", sxcol, sycol);
     if(sxcol == 1 && sycol == 1) {
-        _health.update(1);
-        _enemy.reset_seeker();
+        return true;
+    } else {
+        return false;
     }
 }
-void RosenEngine::check_enemy_projectile_collision()
+bool RosenEngine::enemy_projectile_collision()
 {
     Vector2D seeker_pos = _enemy.get_seekerpos();
     int lazer_x[3],seeker_x[9],seeker_y[38];
@@ -170,19 +185,20 @@
         for(int cx = 0; cx<=9; cx=cx+1) {
             seeker_x[cx] = seeker_pos.x + cx;
             if(seeker_x[cx] == missle_pos.x) {
-                // printf("seeker_xpos = %f, missle_xpos = %f\n",seeker_pos.x,missle_pos.x);
+                printf("seeker_xpos = %f, missle_xpos = %f\n",seeker_pos.x,missle_pos.x);
                 wxcol = 1;
             }
         }
         for(int cy = 0; cy<=7; cy=cy+1) {
             seeker_y[cy] = seeker_pos.y + cy;
-            if(seeker_y[cy] == missle_pos.y) {
-                // printf("seeker_ypos = %f, missle_ypos = %f\n",seeker_pos.y,missle_pos.y);
+            if(seeker_y[cy] == missle_pos.y + 4) {
+                printf("seeker_ypos = %f, missle_ypos = %f\n",seeker_pos.y,missle_pos.y);
                 wycol = 1;
             }
         }
         if(wxcol == 1 && wycol == 1) {
-            _enemy.reset_seeker();
+            _weapons.set_pos(ship_xpos,ship_ypos);
+            return true;
         }
     }
 
@@ -199,12 +215,16 @@
                 for(int mx = 0; mx<=9; mx=mx+1) {
                     if(lazer_x[nx] == seeker_x[mx]) {
                         wxcol = 1;
+                        printf("lazer_x = %d,seeker_x = %f\n");
                     }
                 }
             }
         }
         if(wxcol == 1 && A == true) {
-            _enemy.reset_seeker();
+            return true;
+        }
+        else{
+            return false;
         }
     }
 }
\ No newline at end of file