Stephen Ralph / Mbed 2 deprecated Asteroids

Dependencies:   mbed 4DGL-uLCD-SE PinDetect

Revision:
2:fe6ab9956767
Parent:
1:79577bd1e4cb
Child:
3:8c6fa5e63937
diff -r 79577bd1e4cb -r fe6ab9956767 main.cpp
--- a/main.cpp	Fri Nov 30 05:37:28 2018 +0000
+++ b/main.cpp	Fri Nov 30 05:52:13 2018 +0000
@@ -1,5 +1,6 @@
 #include "uLCD_4DGL.h"
 #include "MMA8452.h"
+#include "Speaker.h"
 
 
 #include "SSE.h"
@@ -40,18 +41,93 @@
 
 uLCD_4DGL uLCD(p28, p27, p29);
 Serial pc(USBTX,USBRX);
-MMA8452 acc(p9, p10, 40000);  //instantiate an acc object! 
+MMA8452 acc(p9, p10, 40000);  //instantiate an acc object!
+Speaker mySpeaker(p21);
 
-int asteroid_sprite_1[ASTEROID_HEIGHT * ASTEROID_WIDTH] = {_,_,_,_,X,X,X,X,X,X,X,X,_,_,_,_,_,_,X,_,_,_,_,_,_,_,_,X,_,_,_,_,X,_,_,_,_,_,_,_,_,_,X,_,_,_,X,_,_,_,_,_,_,_,_,_,_,X,_,_,X,X,X,X,_,_,_,_,_,_,_,_,_,X,_,_,_,_,X,_,_,_,_,_,_,_,_,_,X,_,_,_,X,_,_,_,_,_,_,_,_,_,_,X,_,_,X,_,_,_,_,_,X,_,_,_,_,_,X,_,X,_,_,_,_,_,X,X,_,_,_,_,X,_,_,_,X,_,_,_,X,_,X,_,_,_,_,X,_,_,_,_,X,_,X,_,_,X,_,_,_,X,_,_,_,_,_,_,X,_,_,_,X,X,X,X,_,_,_,_};
+int asteroid_sprite_1[ASTEROID_HEIGHT * ASTEROID_WIDTH] = {
+    _,_,_,_,X,X,X,X,X,X,X,X,_,_,_,
+    _,_,_,X,_,_,_,_,_,_,_,_,X,_,_,
+    _,_,X,_,_,_,_,_,_,_,_,_,X,_,_,
+    _,X,_,_,_,_,_,_,_,_,_,_,X,_,_,
+    X,X,X,X,_,_,_,_,_,_,_,_,_,X,_,
+    _,_,_,X,_,_,_,_,_,_,_,_,_,X,_,
+    _,_,X,_,_,_,_,_,_,_,_,_,_,X,_,
+    _,X,_,_,_,_,_,X,_,_,_,_,_,X,_,
+    X,_,_,_,_,_,X,X,_,_,_,_,X,_,_,
+    _,X,_,_,_,X,_,X,_,_,_,_,X,_,_,
+    _,_,X,_,X,_,_,X,_,_,_,X,_,_,_,
+    _,_,_,X,_,_,_,X,X,X,X,_,_,_,_
+};
 
-int asteroid_sprite_2[ASTEROID_HEIGHT * ASTEROID_WIDTH] = {_,_,_,_,X,X,X,X,X,X,X,X,_,_,_,_,_,_,X,_,_,_,_,_,_,_,_,X,_,_,_,_,X,_,_,_,_,_,_,_,_,_,X,_,_,_,X,_,_,_,_,_,_,_,_,_,_,X,_,_,X,X,X,X,_,_,_,_,_,_,_,_,_,X,_,_,_,_,X,_,_,_,_,_,_,_,_,_,X,_,_,_,X,_,_,_,_,_,_,_,_,_,_,X,_,_,X,_,_,_,_,_,X,_,_,_,_,_,X,_,X,_,_,_,_,_,X,X,_,_,_,_,X,_,_,_,X,_,_,_,X,_,X,_,_,_,_,X,_,_,_,_,X,_,X,_,_,X,_,_,_,X,_,_,_,_,_,_,X,_,_,_,X,X,X,X,_,_,_,_};
+int asteroid_sprite_2[ASTEROID_HEIGHT * ASTEROID_WIDTH] = {   
+    _,_,_,_,X,X,X,X,X,X,X,X,_,_,_,
+    _,_,_,X,_,_,_,_,_,_,_,_,X,_,_,
+    _,_,X,_,_,_,_,_,_,_,_,_,X,_,_,
+    _,X,_,_,_,_,_,_,_,_,_,_,X,_,_,
+    X,X,X,X,_,_,_,_,_,_,_,_,_,X,_,
+    _,_,_,X,_,_,_,_,_,_,_,_,_,X,_,
+    _,_,X,_,_,_,_,_,_,_,_,_,_,X,_,
+    _,X,_,_,_,_,_,X,_,_,_,_,_,X,_,
+    X,_,_,_,_,_,X,X,_,_,_,_,X,_,_,
+    _,X,_,_,_,X,_,X,_,_,_,_,X,_,_,
+    _,_,X,_,X,_,_,X,_,_,_,X,_,_,_,
+    _,_,_,X,_,_,_,X,X,X,X,_,_,_,_
+};
 
-int asteroid_sprite_3[ASTEROID_HEIGHT * ASTEROID_WIDTH] = {_,_,_,_,X,X,X,X,X,X,X,X,_,_,_,_,_,_,X,_,_,_,_,_,_,_,_,X,_,_,_,_,X,_,_,_,_,_,_,_,_,_,X,_,_,_,X,_,_,_,_,_,_,_,_,_,_,X,_,_,X,X,X,X,_,_,_,_,_,_,_,_,_,X,_,_,_,_,X,_,_,_,_,_,_,_,_,_,X,_,_,_,X,_,_,_,_,_,_,_,_,_,_,X,_,_,X,_,_,_,_,_,X,_,_,_,_,_,X,_,X,_,_,_,_,_,X,X,_,_,_,_,X,_,_,_,X,_,_,_,X,_,X,_,_,_,_,X,_,_,_,_,X,_,X,_,_,X,_,_,_,X,_,_,_,_,_,_,X,_,_,_,X,X,X,X,_,_,_,_};
+int asteroid_sprite_3[ASTEROID_HEIGHT * ASTEROID_WIDTH] = {  
+    _,_,_,_,X,X,X,X,X,X,X,X,_,_,_,
+    _,_,_,X,_,_,_,_,_,_,_,_,X,_,_,
+    _,_,X,_,_,_,_,_,_,_,_,_,X,_,_,
+    _,X,_,_,_,_,_,_,_,_,_,_,X,_,_,
+    X,X,X,X,_,_,_,_,_,_,_,_,_,X,_,
+    _,_,_,X,_,_,_,_,_,_,_,_,_,X,_,
+    _,_,X,_,_,_,_,_,_,_,_,_,_,X,_,
+    _,X,_,_,_,_,_,X,_,_,_,_,_,X,_,
+    X,_,_,_,_,_,X,X,_,_,_,_,X,_,_,
+    _,X,_,_,_,X,_,X,_,_,_,_,X,_,_,
+    _,_,X,_,X,_,_,X,_,_,_,X,_,_,_,
+    _,_,_,X,_,_,_,X,X,X,X,_,_,_,_
+};
 
-int asteroid_sprite_4[ASTEROID_HEIGHT * ASTEROID_WIDTH] = {_,_,_,_,X,X,X,X,X,X,X,X,_,_,_,_,_,_,X,_,_,_,_,_,_,_,_,X,_,_,_,_,X,_,_,_,_,_,_,_,_,_,X,_,_,_,X,_,_,_,_,_,_,_,_,_,_,X,_,_,X,X,X,X,_,_,_,_,_,_,_,_,_,X,_,_,_,_,X,_,_,_,_,_,_,_,_,_,X,_,_,_,X,_,_,_,_,_,_,_,_,_,_,X,_,_,X,_,_,_,_,_,X,_,_,_,_,_,X,_,X,_,_,_,_,_,X,X,_,_,_,_,X,_,_,_,X,_,_,_,X,_,X,_,_,_,_,X,_,_,_,_,X,_,X,_,_,X,_,_,_,X,_,_,_,_,_,_,X,_,_,_,X,X,X,X,_,_,_,_};
+int asteroid_sprite_4[ASTEROID_HEIGHT * ASTEROID_WIDTH] = { 
+    _,_,_,_,X,X,X,X,X,X,X,X,_,_,_,
+    _,_,_,X,_,_,_,_,_,_,_,_,X,_,_,
+    _,_,X,_,_,_,_,_,_,_,_,_,X,_,_,
+    _,X,_,_,_,_,_,_,_,_,_,_,X,_,_,
+    X,X,X,X,_,_,_,_,_,_,_,_,_,X,_,
+    _,_,_,X,_,_,_,_,_,_,_,_,_,X,_,
+    _,_,X,_,_,_,_,_,_,_,_,_,_,X,_,
+    _,X,_,_,_,_,_,X,_,_,_,_,_,X,_,
+    X,_,_,_,_,_,X,X,_,_,_,_,X,_,_,
+    _,X,_,_,_,X,_,X,_,_,_,_,X,_,_,
+    _,_,X,_,X,_,_,X,_,_,_,X,_,_,_,
+    _,_,_,X,_,_,_,X,X,X,X,_,_,_,_
+};
 
-
-int spaceship_earth1[EARTH_WIDTH *EARTH_HEIGHT] = {_,_,S,S,S,S,S,S,_,_,_,S,I,I,I,I,I,I,S,_,S,I,I,I,I,I,I,I,I,S,S,I,I,I,I,I,I,I,I,S,S,I,I,I,I,I,I,I,I,S,S,I,I,I,I,I,I,I,I,S,S,I,I,I,I,I,I,I,I,S,S,I,I,I,I,I,I,I,I,S,S,I,I,I,I,I,I,I,S,_,_,S,S,S,S,S,S,S,_,_,};
+int spaceship_earth1[EARTH_WIDTH *EARTH_HEIGHT] = {
+    _,_,S,S,S,S,S,S,_,_,
+    _,S,I,I,I,I,I,I,S,_,
+    S,I,I,I,I,I,I,I,I,S,
+    S,I,I,I,I,I,I,I,I,S,
+    S,I,I,I,I,I,I,I,I,S,
+    S,I,I,I,I,I,I,I,I,S,
+    S,I,I,I,I,I,I,I,I,S,
+    S,I,I,I,I,I,I,I,I,S,
+    S,I,I,I,I,I,I,I,S,_,
+    _,S,S,S,S,S,S,S,_,_,
+};
+int exp1[EARTH_WIDTH *EARTH_HEIGHT] = {
+    _,_,S,S,S,S,S,S,_,_,
+    _,R,r,r,r,r,r,r,S,R,
+    S,r,R,O,O,O,O,r,R,S,
+    S,r,O,R,R,R,R,R,r,S,
+    S,r,O,R,R,R,R,r,r,S,
+    S,r,O,R,R,R,R,r,r,S,
+    S,r,O,R,R,R,r,r,r,S,
+    S,r,R,R,O,O,O,O,O,S,
+    S,r,r,r,O,r,r,r,S,_,
+    _,S,S,S,S,S,S,S,_,_,
+};
 
 int main() { 
     uLCD.baudrate(300000);
@@ -90,13 +166,10 @@
             return 0;
         }
         
-        ship.draw();
         ship.update();
         
         for(int i=0; i < NUM_ASTEROIDS; i++){
-            AstAry[i]->draw();
             AstAry[i]->update();
-            
             if(AstAry[i]->outB()){
                 int rando = (rand() % 4);
                 
@@ -112,11 +185,17 @@
             }
             
             if(overlap( ship, *AstAry[i])){
+                uLCD.BLIT(ship.xpos, ship.ypos, EARTH_WIDTH, EARTH_HEIGHT, exp1);
+                mySpeaker.PlayNote(800.0,0.25,0.1);
+                mySpeaker.PlayNote(400.0,0.25,0.1);
+                mySpeaker.PlayNote(200.0,0.25,0.1);
                 uLCD.printf("\nGAME OVER\n");
                 wait(2);
                 return 0;
             }
+            AstAry[i]->draw();
         }
-        wait(.2);
+        ship.draw();
+        wait(.1);
     }
 }
\ No newline at end of file