Version mas reciente 2.0. Contiene manejo de joystick, interrupciones y mejoras de algunos bugs. Game over
Revision 5:63e225628634, committed 2018-11-22
- 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);