Library containing the Game Engine

Revision:
8:bd718162a87c
Parent:
7:cf6304ef44fd
Child:
9:0f359bc0922f
--- a/GameEngine.cpp	Tue May 02 16:25:26 2017 +0000
+++ b/GameEngine.cpp	Wed May 03 13:01:09 2017 +0000
@@ -23,13 +23,16 @@
     _mag = pad.get_mag();
 }
 
-void GameEngine::draw(N5110 &lcd)
+void GameEngine::draw(N5110 &lcd, Gamepad &pad)
 {
-    // draw the elements in the LCD buffer
-    // player
     _p.draw(lcd);
+    /*while ( pad.check_event(Gamepad::A_PRESSED) == true) {
+        _proj.draw(lcd);
+    }*/
     _proj.draw(lcd);
     _t.draw(lcd);
+    _tt.draw(lcd);
+    _ttt.draw(lcd);
 }
 
 
@@ -38,7 +41,10 @@
     _p.update(_d,_mag);
     _proj.update(); 
     _t.update();
+    _tt.update();
+    _ttt.update();
     CheckProjTargetCollision(pad);
+    CheckPlayerTargetCollision(pad);
 }
 
 void GameEngine::get_pos()
@@ -64,7 +70,11 @@
 {
     Vector2D proj_pos = _proj.get_pos();
     Vector2D t_pos = _t.get_pos();
+    Vector2D tt_pos = _tt.get_pos();
+    Vector2D ttt_pos = _ttt.get_pos();
+
     Vector2D player_pos = _p.get_pos();
+
    // printf("proj %f %f \n", proj_pos.x, proj_pos.y);
     //printf("targ %f %f \n", t_pos.x, t_pos.y);
     
@@ -73,26 +83,148 @@
         (proj_pos.y == t_pos.y + 1) ||
         (proj_pos.y == t_pos.y + 2) ||
         (proj_pos.y == t_pos.y + 3) ||
-        (proj_pos.y == t_pos.y + 4)) && 
+        (proj_pos.y == t_pos.y + 4) ||
+        (proj_pos.y == t_pos.y + 5) ||
+        (proj_pos.y == t_pos.y + 6) ||
+        (proj_pos.y == t_pos.y + 7) ||
+        (proj_pos.y + 1 == t_pos.y) ||
+        (proj_pos.y + 1 == t_pos.y + 1) ||
+        (proj_pos.y + 1 == t_pos.y + 2) ||
+        (proj_pos.y + 1 == t_pos.y + 3) ||
+        (proj_pos.y + 1 == t_pos.y + 4) ||
+        (proj_pos.y + 1 == t_pos.y + 5) ||
+        (proj_pos.y + 1 == t_pos.y + 6) ||
+        (proj_pos.y + 1 == t_pos.y + 7)) &&
         ((proj_pos.x == t_pos.x) ||
         (proj_pos.x == t_pos.x + 1) ||
         (proj_pos.x == t_pos.x + 2) ||
         (proj_pos.x == t_pos.x + 3) ||
-        (proj_pos.x == t_pos.x + 4))
+        (proj_pos.x == t_pos.x + 4) ||
+        (proj_pos.x == t_pos.x + 5) ||
+        (proj_pos.x == t_pos.x + 6) ||
+        (proj_pos.x == t_pos.x + 7) ||
+        (proj_pos.x + 1 == t_pos.x) ||
+        (proj_pos.x + 1 == t_pos.x + 1) ||
+        (proj_pos.x + 1 == t_pos.x + 2) ||
+        (proj_pos.x + 1 == t_pos.x + 3) ||
+        (proj_pos.x + 1 == t_pos.x + 4) ||
+        (proj_pos.x + 1 == t_pos.x + 5) ||
+        (proj_pos.x + 1 == t_pos.x + 6) ||
+        (proj_pos.x + 1 == t_pos.x + 7) ||
+        (proj_pos.x + 1 == t_pos.x + 8) ||
+        (proj_pos.x + 1 == t_pos.x + 9) ||
+        (proj_pos.x + 1 == t_pos.x + 10))
     ) {
         
-        printf("yeaaaaaaaaaaaaah boiiiiiiiiiiii \n");
-        proj_pos.x = player_pos.x +1;
-        proj_pos.y = player_pos.y +1;
+        //printf("projtarget working \n");
+        proj_pos.x = player_pos.x +2;
+        proj_pos.y = player_pos.y;
         t_pos.x = rand() % 79;
         t_pos.y = 0;
         // audio feedback
         //pad.tone(1000.0,0.1);
     }
+    
+    if (
+        ((proj_pos.y == tt_pos.y) ||
+        (proj_pos.y == tt_pos.y + 1) ||
+        (proj_pos.y == tt_pos.y + 2) ||
+        (proj_pos.y == tt_pos.y + 3) ||
+        (proj_pos.y == tt_pos.y + 4) ||
+        (proj_pos.y == tt_pos.y + 5) ||
+        (proj_pos.y == tt_pos.y + 6) ||
+        (proj_pos.y == tt_pos.y + 7) ||
+        (proj_pos.y + 1 == tt_pos.y) ||
+        (proj_pos.y + 1 == tt_pos.y + 1) ||
+        (proj_pos.y + 1 == tt_pos.y + 2) ||
+        (proj_pos.y + 1 == tt_pos.y + 3) ||
+        (proj_pos.y + 1 == tt_pos.y + 4) ||
+        (proj_pos.y + 1 == tt_pos.y + 5) ||
+        (proj_pos.y + 1 == tt_pos.y + 6) ||
+        (proj_pos.y + 1 == tt_pos.y + 7)) &&
+        ((proj_pos.x == tt_pos.x) ||
+        (proj_pos.x == tt_pos.x + 1) ||
+        (proj_pos.x == tt_pos.x + 2) ||
+        (proj_pos.x == tt_pos.x + 3) ||
+        (proj_pos.x == tt_pos.x + 4) ||
+        (proj_pos.x == tt_pos.x + 5) ||
+        (proj_pos.x == tt_pos.x + 6) ||
+        (proj_pos.x == tt_pos.x + 7) ||
+        (proj_pos.x + 1 == tt_pos.x) ||
+        (proj_pos.x + 1 == tt_pos.x + 1) ||
+        (proj_pos.x + 1 == tt_pos.x + 2) ||
+        (proj_pos.x + 1 == tt_pos.x + 3) ||
+        (proj_pos.x + 1 == tt_pos.x + 4) ||
+        (proj_pos.x + 1 == tt_pos.x + 5) ||
+        (proj_pos.x + 1 == tt_pos.x + 6) ||
+        (proj_pos.x + 1 == tt_pos.x + 7) ||
+        (proj_pos.x + 1 == tt_pos.x + 8) ||
+        (proj_pos.x + 1 == tt_pos.x + 9) ||
+        (proj_pos.x + 1 == tt_pos.x + 10))
+    ) {
+        
+        //printf("projtarget working \n");
+        proj_pos.x = player_pos.x +2;
+        proj_pos.y = player_pos.y;
+        tt_pos.x = rand() % 79;
+        tt_pos.y = 0;
+        // audio feedback
+        //pad.tone(1000.0,0.1);
+    }
+    
+    if (
+        ((proj_pos.y == ttt_pos.y) ||
+        (proj_pos.y == ttt_pos.y + 1) ||
+        (proj_pos.y == ttt_pos.y + 2) ||
+        (proj_pos.y == ttt_pos.y + 3) ||
+        (proj_pos.y == ttt_pos.y + 4) ||
+        (proj_pos.y == ttt_pos.y + 5) ||
+        (proj_pos.y == ttt_pos.y + 6) ||
+        (proj_pos.y == ttt_pos.y + 7) ||
+        (proj_pos.y + 1 == ttt_pos.y) ||
+        (proj_pos.y + 1 == ttt_pos.y + 1) ||
+        (proj_pos.y + 1 == ttt_pos.y + 2) ||
+        (proj_pos.y + 1 == ttt_pos.y + 3) ||
+        (proj_pos.y + 1 == ttt_pos.y + 4) ||
+        (proj_pos.y + 1 == ttt_pos.y + 5) ||
+        (proj_pos.y + 1 == ttt_pos.y + 6) ||
+        (proj_pos.y + 1 == ttt_pos.y + 7)) &&
+        ((proj_pos.x == ttt_pos.x) ||
+        (proj_pos.x == ttt_pos.x + 1) ||
+        (proj_pos.x == ttt_pos.x + 2) ||
+        (proj_pos.x == ttt_pos.x + 3) ||
+        (proj_pos.x == ttt_pos.x + 4) ||
+        (proj_pos.x == ttt_pos.x + 5) ||
+        (proj_pos.x == ttt_pos.x + 6) ||
+        (proj_pos.x == ttt_pos.x + 7) ||
+        (proj_pos.x + 1 == ttt_pos.x) ||
+        (proj_pos.x + 1 == ttt_pos.x + 1) ||
+        (proj_pos.x + 1 == ttt_pos.x + 2) ||
+        (proj_pos.x + 1 == ttt_pos.x + 3) ||
+        (proj_pos.x + 1 == ttt_pos.x + 4) ||
+        (proj_pos.x + 1 == ttt_pos.x + 5) ||
+        (proj_pos.x + 1 == ttt_pos.x + 6) ||
+        (proj_pos.x + 1 == ttt_pos.x + 7) ||
+        (proj_pos.x + 1 == ttt_pos.x + 8) ||
+        (proj_pos.x + 1 == ttt_pos.x + 9) ||
+        (proj_pos.x + 1 == ttt_pos.x + 10))
+    ) {
+        
+        //printf("projtarget working \n");
+        proj_pos.x = player_pos.x +2;
+        proj_pos.y = player_pos.y;
+        ttt_pos.x = rand() % 79;
+        ttt_pos.y = 0;
+        // audio feedback
+        //pad.tone(1000.0,0.1);
+    }
+     
 
     _proj.set_pos(proj_pos);
     _t.set_pos(t_pos);
-    
+    _tt.set_pos(tt_pos);
+    _ttt.set_pos(ttt_pos);
+
        
     }
     
@@ -100,5 +232,54 @@
     
     
     
+void GameEngine::CheckPlayerTargetCollision(Gamepad &pad)
+    {
+        Vector2D t_pos = _t.get_pos();
+        Vector2D player_pos = _p.get_pos();
+        
+         
+    if (
+        ((player_pos.y == t_pos.y) ||
+        (player_pos.y == t_pos.y + 1) ||
+        (player_pos.y == t_pos.y + 2) ||
+        (player_pos.y == t_pos.y + 3) ||
+        (player_pos.y == t_pos.y + 4) ||
+        
+        (player_pos.y +2 == t_pos.y) ||
+        (player_pos.y +2 == t_pos.y + 1) ||
+        (player_pos.y +2 == t_pos.y + 2) ||
+        (player_pos.y +2 == t_pos.y + 3) ||
+        (player_pos.y +2 == t_pos.y + 4)) &&
+        ((player_pos.x == t_pos.x) ||
+        (player_pos.x == t_pos.x + 1) ||
+        (player_pos.x == t_pos.x + 2) ||
+        (player_pos.x == t_pos.x + 3) ||
+        (player_pos.x == t_pos.x + 4) ||
+        
+        (player_pos.x +2 == t_pos.x) ||
+        (player_pos.x +2 == t_pos.x + 1) ||
+        (player_pos.x +2 == t_pos.x + 2) ||
+        (player_pos.x +2 == t_pos.x + 3) ||
+        (player_pos.x +2 == t_pos.x + 4))
+    ) {
+        
+        //printf("collision working \n");
+        // audio feedback
+        //pad.tone(1000.0,0.1);
+        t_pos.x = rand() % 79;
+        t_pos.y = 20;
+        
+    }
+
+    _t.set_pos(t_pos);
+    
+       
+    }
+        
+        
+        
+
+    
+    
     
     
\ No newline at end of file