ELEC2645 (2018/19) / Mbed 2 deprecated el17cd

Dependencies:   mbed

Revision:
10:07a23afd5088
Parent:
9:5915fc800824
Child:
11:2cd6341136ca
--- a/main.cpp	Tue Mar 19 10:27:37 2019 +0000
+++ b/main.cpp	Tue Mar 19 12:12:52 2019 +0000
@@ -30,8 +30,8 @@
     
     gamepad.init();
     Rasturizer renderer;
-    for(int i = 0; i < 1; i++){
-        Cube cube(rand()%80-40,0,i*10,5);
+    for(int i = 0; i < 10; i++){
+        Cube cube(rand()%80-40,0,30+ i*20,5);
         cubeVector.push_back(cube);
     }
     while(1) {
@@ -45,7 +45,7 @@
         if(gamepad.check_event(Gamepad::X_PRESSED) == true){
             rotate2 = true;
         }
-        
+
         for (int c = 0; c< cubeVector.size(); c++)
         {  
             if(rotate1){
@@ -55,26 +55,38 @@
                 cubeVector[c].rotateY(-0.2);
             }
             for (int i = 0; i < 6; i++){
-                renderer.drawFace(cubeVector[c].getFace(i));
                 faceVector.push_back(cubeVector[c].getFace(i));
-                cubeVector[c].translate(-coord.x*2,0,-coord.y*2);
+                
+                cubeVector[c].translate(-coord.x/2,0,-0.4);
+            }
+            if (cubeVector[c].despawn()){
+                cubeVector.erase(cubeVector.begin() + c);
+                Cube cube(rand()%80-40,0,90,5);
+                cubeVector.push_back(cube);
             }
         }
-        for (int f = 0; f< faceVector.size()-1; f++){
-            for (int f2 = 0; f2< faceVector.size()-1; f2++){
-                if(faceVector[f].getAvgZ() < faceVector[f+1].getAvgZ()){
-                    Face temp = faceVector[f+1];
-                    faceVector[f+1] = faceVector[f];
-                    faceVector[f] = temp;
+      
+      
+      
+        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]);
+            
         }
-        faceVector.clear();
-        
-        renderer.refresh(); // refresh the LCD so the pixels appear
-        wait_ms(1000/30);  // this gives a refresh rate of 10 frames per second
+        faceVector.clear();  
+         // refresh the LCD so the pixels appear
+         // this gives a refresh rate of 10 frames per second
+         renderer.refresh();
+        wait_ms(1000/30);
     }
 }