ELEC2645 (2018/19) / Mbed 2 deprecated el17cd

Dependencies:   mbed

Revision:
15:8fbbdefbe720
Child:
16:64cd7bc094f9
diff -r 885915260e25 -r 8fbbdefbe720 Game/Game.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Game/Game.cpp	Sun Mar 31 14:56:55 2019 +0000
@@ -0,0 +1,74 @@
+#include "Game.h"
+
+Game::Game(){
+    score = 0;
+    gamepad.init();
+    renderer.init();
+    
+    for(int i = 0; i < 7; i++){
+        Cube cube(rand()%80-40,0,30+ i*20,5);
+        cubeVector.push_back(cube);
+    }
+}
+
+void Game::run(){
+
+    while(1) {
+        Vector2D coord = gamepad.get_coord();
+        renderer.clear();
+        
+        if(playing){
+            score++;
+        }
+        
+        renderer.drawHorizon(coord.x/15);
+        for (int c = 0; c< cubeVector.size(); c++)
+        {  
+            if(playing){
+                cubeVector[c].translate(-coord.x*1.4,0,-3);
+            }
+            for (int i = 0; i < 6; i++){
+                faceVector.push_back(cubeVector[c].getFace(i));
+            }
+            if (cubeVector[c].despawn()){
+                cubeVector.erase(cubeVector.begin() + c);
+                Cube cube(rand()%80-40,0,90,5);
+                cubeVector.push_back(cube);
+            }
+            if (cubeVector[c].tooClose()){
+                cubeVector.erase(cubeVector.begin() + c);
+                playing = false;
+                //renderer.invertMode();
+                score = 0;
+                //  ticker.attach(&resetScreen,1);
+                Cube cube(rand()%80-40,0,90,5);
+                cubeVector.push_back(cube);
+            }
+        }
+        for (int f = 0; f< faceVector.size(); f++){
+            for (int f2 = 0; f2< faceVector.size(); f2++){
+                if(faceVector[f2].getAvgZ() < faceVector[f2+1].getAvgZ()){
+                    Face temp = faceVector[f2+1];
+                    faceVector[f2+1] = faceVector[f2];
+                    faceVector[f2] = temp;
+                }
+            }
+        }
+        
+        for (int f = 0; f< faceVector.size() ; f++){
+            //pc.printf("%f\n", faceVector[f].getAvgZ());
+            renderer.drawFace(faceVector[f], coord.x/15);
+            //wait_ms(1000/1);
+           
+        }
+        char buf[10];
+        sprintf(buf, "%d", score);
+        renderer.print(buf);
+        memset(buf, 0, sizeof buf);
+        renderer.refresh();
+        faceVector.clear();  
+        
+        wait_ms(1000/30);
+    }
+}
+   
\ No newline at end of file