Yosef Guevara Salamanca
/
cruzandoCalle
Juego de cruzar las calles, el jugador debe llegar hasta el otro punto para ganar
calle.cpp
- Committer:
- djinn77
- Date:
- 2018-11-13
- Revision:
- 7:73af8e91e691
- Parent:
- 6:fae23f72d7f0
- Child:
- 8:29d258f44024
File content as of revision 7:73af8e91e691:
#include "mbed.h" #include "avenidas.h" // Definicion de parametros de comunicacion Serial pc(USBTX,USBRX); SPI deviceM(PB_5, PB_4, PB_3); //D4(gris), Ninguno, D3(azul) DigitalOut ssel (PA_4); //A2(morado) Ticker tp; int printjugador =1; // Definiendo Botones AnalogIn vry(A3); AnalogIn vrx(A4); DigitalIn sw(A5); // Definicion de Funciones void sendSPI(); void inicializar_matriz(); void printstatus(); void desplazar_der(); void desplazar_izq(); void arriba(); void pista(); void puntaje(); void impresion(); // Definicion de Variables uint16_t* nivel; uint16_t* jugador; uint16_t* victorias; float velocidad = 1.0; float meas_vx; float meas_vy; uint8_t ubicacion; uint8_t conteo = 2; // Inicio del programa void sendSPI(uint8_t d1, uint8_t d2) { deviceM.unlock(); ssel=0; deviceM.write(d1); deviceM.write(d2); ssel=1; deviceM.lock(); }; void inicializar_matriz(){ sendSPI(0x0c,1); sendSPI(0x0b,7); sendSPI(0x09,0); //SELECCIONA LA LUMINOSIDAD DE LA MATRIZ sendSPI(0x0A,0x00); //SELECCIONA LA LUMINOSIDAD DE LA MATRIZ int i; for (i=0;i<2;i++){ sendSPI(0x0F,1); wait (0.5); sendSPI(0x0F,0); wait (0.5); } } int main() { pc.baud(38400); inicializar_matriz(); nivel= AV_1; victorias=puntos; jugador=player; tp.attach(&printstatus,0.2); ubicacion=1; while(1){ impresion(); } while(1){ meas_vx = vrx.read() * 3300; // Convierte el valor de lectura de la entrada entre 0-3300 eje X meas_vy = vry.read() * 3300; // Convierte el valor de lectura de la entrada entre 0-3300 eje Y //------ realiza el corriemiento del vector hacia la izq y der respectivamente. if (meas_vx < 1600) // si se cumple esta condicion el jugador se desplaza a la izq desplazar_izq(); else if (meas_vx > 1700) // si se cumple esta condicion el jugador se desplaza a la der desplazar_der(); //------ mueve a el jugador hacia arriba en el mapa if(meas_vy < 1550){ arriba(); ubicacion++; pc.printf("\n ubicacion:\n %i",ubicacion); if(ubicacion==7) puntaje(); } // ----- El siguiente ciclo realiza el desplazamiento de los vehiculos pista(); wait(velocidad); // Velocidad del juego } } void desplazar_der(){ int der = jugador[7]; for(int i= 7; i>=0;i--){ jugador[i]=jugador[i-1]; } jugador[0] = der; } void desplazar_izq(){ int izq = jugador[0]; for(int i= 0; i<8;i++){ jugador[i]=jugador[i+1]; } jugador[7] = izq; } void arriba(){ int arb = 1; for(int i= 0; i<8;i++){ jugador[i]= jugador[i] << arb; } arb++; } void pista(){ int aux = nivel[0]; for(int i= 0; i<8;i++){ nivel[i]=nivel[i+1]; } nivel[7] = aux; } void puntaje(){ victorias[conteo]=0x80; conteo++; } void printstatus() { for(int j= 1; j<=8;j++) if (printjugador) sendSPI(j, nivel[j-1]|jugador[j-1]| victorias[j-1]); else sendSPI(j, nivel[j-1]| victorias[j-1]); printjugador =!printjugador; }