Yufan Zhong / Mbed 2 deprecated GOLD_MINER

Dependencies:   mbed

Revision:
13:3299ab0ff2f0
Parent:
12:07a9f2140d9b
Child:
14:3731b0791970
--- a/MinerEngine/MinerEngine.cpp	Mon Apr 27 16:02:47 2020 +0000
+++ b/MinerEngine/MinerEngine.cpp	Sun May 10 06:43:16 2020 +0000
@@ -74,6 +74,32 @@
     {0,0,0,0,0,0,0,0},
 };
 
+int man_state1[10][7] = {
+    {0,0,1,1,1,0,0},
+    {0,0,1,0,1,0,0},
+    {0,0,1,1,1,0,0},
+    {1,0,0,1,0,0,0},
+    {1,1,1,1,1,1,1},
+    {0,0,0,1,0,0,1},
+    {0,0,1,1,1,0,0},
+    {0,0,1,0,1,0,0},
+    {0,0,1,0,1,0,0},
+    {0,0,0,0,1,0,0},
+};
+
+int man_state2[10][7] = {
+    {0,0,1,1,1,0,0},
+    {0,0,1,0,1,0,0},
+    {0,0,1,1,1,0,0},
+    {0,0,0,1,0,0,1},
+    {1,1,1,1,1,1,1},
+    {1,0,0,1,0,0,0},
+    {0,0,1,1,1,0,0},
+    {0,0,1,0,1,0,0},
+    {0,0,1,0,1,0,0},
+    {0,0,1,0,0,0,0},
+};
+
 void MinerEngine::init(int winch_width,int winch_height,int gold_num,int monster_speed)
 {
     // initialise the game parameters
@@ -94,6 +120,7 @@
     _claw_get = 0;//是否已经碰到金子
     _monster_collision=0;//是否撞到怪物
     _now_score = 0;
+    _h = 37;
     
     for (int i=0;i<9;i++) {
         _gold_reached_num[i] = 0;
@@ -234,6 +261,10 @@
 }
 
 void MinerEngine::game_run(Gamepad &pad, N5110 &lcd) {
+   // while(_h>24) {
+        tunnel(lcd);
+        //}
+        
     int fps=12;
     _monster_collision=0;
     while(_monster_collision==0) {
@@ -407,6 +438,79 @@
         
         while ( pad.check_event(Gamepad::START_PRESSED) == false) {
            play_music(pad);
+          /*
+           int i = 0;
+           int n = 0;
+           int z = 1;
+           int j = 0;
+           int h = 37;
+           /////////
+           
+  while(1) {
+        lcd.clear();
+        lcd.drawLine(41,24,18,47,1);
+        lcd.drawLine(42,24,19,47,1);
+        
+        lcd.drawLine(43,24,66,47,1);
+        lcd.drawLine(42,24,65,47,1);
+     
+      
+        lcd.drawCircle(42,24,2+i,FILL_TRANSPARENT); 
+        lcd.drawCircle(42,24,12+i,FILL_TRANSPARENT); 
+        lcd.drawCircle(42,24,22+i,FILL_TRANSPARENT);
+        lcd.drawCircle(42,24,32+i,FILL_TRANSPARENT);
+       
+        
+        for(int k=0;k<23;k++) {
+        lcd.drawLine(42-k,25+k,42+k,25+k,0);
+        }
+        
+        lcd.drawLine(38-n,24+n,46+n,24+n,1);
+        lcd.drawLine(38-n,25+n,46+n,25+n,1);
+        
+        lcd.drawLine(30-n,32+n,54+n,32+n,1);
+        lcd.drawLine(30-n,33+n,54+n,33+n,1);
+        
+        lcd.drawLine(22-n,40+n,62+n,40+n,1);
+        lcd.drawLine(22-n,41+n,62+n,41+n,1);
+        
+        j++;
+        if (j==5) {
+            j=0;
+            
+            if (h>24) {
+                 h--;
+            }
+            else {
+                 h=24;  
+                }
+            }
+            
+        if(z==1) {
+          lcd.drawSprite(39,h,10,7,(int *)man_state2);
+          lcd.refresh();
+          
+        }         
+        if(z==-1) {
+          lcd.drawSprite(39,h,10,7,(int *)man_state1);
+          
+          lcd.refresh();
+        }
+       
+        i++;
+        n++;
+        z=-z;
+        if (i==10) {
+            i=0;
+            }
+        if (n==8) {
+            n=0;
+            }
+            lcd.refresh();
+            wait(0.1);
+       }
+            ///////
+    */
         }
         screen_rollup(pad,lcd); 
         loading(pad,lcd);     
@@ -539,3 +643,84 @@
      }
 }
 
+void MinerEngine::tunnel(N5110 &lcd) {
+           int i = 0;
+           int n = 0;
+           int z = 1;
+           int j = 0;
+           
+           /////////
+           
+  while(_h>24) {
+        lcd.clear();
+        lcd.drawLine(41,24,18,47,1);
+        lcd.drawLine(42,24,19,47,1);
+        
+        lcd.drawLine(43,24,66,47,1);
+        lcd.drawLine(42,24,65,47,1);
+     
+      
+        lcd.drawCircle(42,24,2+i,FILL_TRANSPARENT); 
+        lcd.drawCircle(42,24,12+i,FILL_TRANSPARENT); 
+        lcd.drawCircle(42,24,22+i,FILL_TRANSPARENT);
+        lcd.drawCircle(42,24,32+i,FILL_TRANSPARENT);
+       
+        
+        for(int k=0;k<23;k++) {
+        lcd.drawLine(42-k,25+k,42+k,25+k,0);
+        }
+        
+        lcd.drawLine(38-n,24+n,46+n,24+n,1);
+        lcd.drawLine(38-n,25+n,46+n,25+n,1);
+        
+        lcd.drawLine(30-n,32+n,54+n,32+n,1);
+        lcd.drawLine(30-n,33+n,54+n,33+n,1);
+        
+        lcd.drawLine(22-n,40+n,62+n,40+n,1);
+        lcd.drawLine(22-n,41+n,62+n,41+n,1);
+        
+        j++;
+        if (j==5) {
+            j=0;
+            
+            if (_h>24) {
+                 _h--;
+            }
+            else {
+                 _h=24;  
+                }
+            }
+            
+        if(z==1) {
+          lcd.drawSprite(39,_h,10,7,(int *)man_state2);
+          lcd.refresh();
+          
+        }         
+        if(z==-1) {
+          lcd.drawSprite(39,_h,10,7,(int *)man_state1);
+          
+          lcd.refresh();
+        }
+       
+        i++;
+        n++;
+        z=-z;
+        if (i==10) {
+            i=0;
+            }
+        if (n==8) {
+            n=0;
+            }
+            lcd.refresh();
+            wait(0.1);
+       
+    }
+    lcd.clear();
+    lcd.drawRect(0,0,WIDTH,HEIGHT,FILL_TRANSPARENT);
+    lcd.drawRect(1,1,WIDTH-2,HEIGHT-2,FILL_TRANSPARENT);
+    lcd.printString("  WE ARE",2,1);
+    lcd.printString("  IN THE",2,2);
+    lcd.printString("  MINE!!!",2,3);
+    lcd.refresh();
+    wait(2);
+}