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:
- 4:074433a7addc
- Parent:
- 3:ddb6c620cce7
- Child:
- 5:3cfdf3e56c8f
File content as of revision 4:074433a7addc:
#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; DigitalOut led(LED1); int printjugador =1; // Definiendo Botones AnalogIn vry(A3); AnalogIn vrx(A4); DigitalIn sw(A5); // Definicion de Funciones void sendSPI(); void inicializar_matriz(); void printstatus(); // Definicion de Variables uint16_t* nivel; uint16_t* jugador; float velocidad = 1.0; 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; jugador=player; tp.attach(&printstatus,0.2); float meas_vx; float meas_vy; 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. if(meas_vx <= 1500){ int izq = jugador[0]; for(int i= 0; i<8;i++){ jugador[i]=jugador[i+1]; } jugador[7] = izq; } // realiza el corrimeinto del juegador hacie la der. if(meas_vx >= 1700){ int der = jugador[7]; for(int i= 7; i>=0;i--){ jugador[i]=jugador[i-1]; } jugador[0] = der; } // mueve el jugador de posicion en pruebas if(meas_vy > 1700){ int abj = 1; for(int i= 0; i<8;i++){ jugador[i]= jugador[i] >> abj; } abj++; } // El siguient ciclo realiza el desplazamiento de los vehiculos int aux = nivel[0]; for(int i= 0; i<8;i++){ nivel[i]=nivel[i+1]; } nivel[7] = aux; // EL siguiente ciclo for realiza la impresion //for(int j= 1; j<=8;j++){ // sendSPI(j, nivel[j-1]); //} // wait(0.08); wait(velocidad); } } void printstatus() { for(int j= 1; j<=8;j++) if (printjugador) sendSPI(j, nivel[j-1]|jugador[j-1]); else sendSPI(j, nivel[j-1]); printjugador =!printjugador; led=!led; }