Version mas reciente 2.0. Contiene manejo de joystick, interrupciones y mejoras de algunos bugs. Game over

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
acastiblancoc
Date:
Thu Nov 22 04:47:47 2018 +0000
Parent:
4:6f2a8091f2a0
Commit message:
Ultimo tetris

Changed in this revision

Tetrix.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r 6f2a8091f2a0 -r 63e225628634 Tetrix.cpp
--- a/Tetrix.cpp	Sun Nov 11 08:40:45 2018 +0000
+++ b/Tetrix.cpp	Thu Nov 22 04:47:47 2018 +0000
@@ -10,10 +10,10 @@
 float vx=0;
 float vy=0;
 DigitalIn cambio(PB_8);
-int cc=0;
+int cc=0, punto=1;
 uint8_t movimiento=0;
 
-#define  VEL 100 
+float VEL= 500; 
 
 uint8_t matrix_act [11]={0,0,0,0,0,0,0,0,0,0,0};   
 uint8_t matrix_temp [8]={0,0,0,0,0,0,0,0};    
@@ -67,6 +67,24 @@
     }
 };
 
+void game_over()
+{
+    uint8_t go [9]={0,0,0b01000010,0b00100100,0b00011000,0b00100100,0b01000010,0b00000000,0}; 
+    int k,n;
+    for(n=0;n<6;n++)
+    {
+    borrar();
+    for(k=1;k<=8;k++)
+    {
+    sendSPI(k,go[k]);
+    }
+    wait(0.2);
+    borrar();
+    wait(0.2);
+    }
+    }
+    
+
 void buscar_fila(){
     for (uint8_t i=0;i<9;i++){                     
         if((matrix_act[i]& matrix_temp[3])==0){
@@ -91,7 +109,10 @@
     if(fila>8)
         fila=8;
     if(fila<=1){
+        punto=1;
+        VEL=500;
         wait_ms(VEL);
+        game_over();
         borrar();
         fila=8;
     }
@@ -116,36 +137,19 @@
 {
     movimiento=4;}
 void movimiento_fig(){
-    //movimiento=0;
-    /*reada();
+    reada();
     command.printf("vy = %f \n", vy);
     command.printf("vx = %f \n", vx);
     command.printf("cc = %f \n", cambio.read());
    if(vy<0.2)  
     movimiento=1;
-    
-   /* if(vy>0.8)  
+    if(vy>0.8)  
     movimiento=4;
-    
     if(vx<0.2)
     movimiento=3;
-    
     if(vx>0.80) 
     movimiento=2;
     command.printf("movimiento = %d \n", movimiento);
-    */
-    char movimiento1=command.getc();
-     if(movimiento1==30)  
-    movimiento=1;
-    
-    if(movimiento1==29)  
-    movimiento=2;
-    
-    if(movimiento1==28)
-    movimiento=3;
-    /*
-    if(movimiento==31) 
-    movimiento=0;*/
     switch (movimiento){
                 
                 case 4:
@@ -160,7 +164,6 @@
                 rotacion++;
                 if(rotacion>4)
                 rotacion=1;
-                //printf("%f", joy1.read());
                 break; 
                 
                  case 2:
@@ -199,6 +202,12 @@
             sendSPI(cont-2,matrix_temp1[1]);
             sendSPI(cont-1,matrix_temp1[2]);
             sendSPI(cont  ,matrix_temp1[3]);                     //pasa de i+2 a i+1
+            if(punto%4==0)
+            {
+            VEL=VEL/3;
+             if(VEL<=50)
+             VEL=50;   
+                }
             wait_ms(VEL);
 }
 
@@ -256,6 +265,8 @@
                 sendSPI(a,matrix_act[a-1]);
                 matrix_act[a]=matrix_act[a-1];
             }
+            punto++;
+            printf("%f", punto);
         }
     }
 }
@@ -268,7 +279,7 @@
             figuras();
             buscar_fila();
             cont=0; 
-            elimina_linea(); 
+            elimina_linea();
             while (cont<fila){
                         movimiento_fig();    
                         crear_fig(figura,rotacion,columna);