Juego de cruzar las calles, el jugador debe llegar hasta el otro punto para ganar

Dependencies:   mbed

Committer:
djinn77
Date:
Tue Nov 13 21:42:08 2018 +0000
Revision:
6:fae23f72d7f0
Parent:
5:3cfdf3e56c8f
Child:
7:73af8e91e691
Organizado por funciones;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
djinn77 0:22386e919072 1 #include "mbed.h"
djinn77 0:22386e919072 2 #include "avenidas.h"
djinn77 4:074433a7addc 3
djinn77 0:22386e919072 4 // Definicion de parametros de comunicacion
djinn77 4:074433a7addc 5
djinn77 1:18fff1390131 6 Serial pc(USBTX,USBRX);
djinn77 4:074433a7addc 7 SPI deviceM(PB_5, PB_4, PB_3); //D4(gris), Ninguno, D3(azul)
djinn77 4:074433a7addc 8 DigitalOut ssel (PA_4); //A2(morado)
djinn77 3:ddb6c620cce7 9 Ticker tp;
djinn77 3:ddb6c620cce7 10 int printjugador =1;
djinn77 4:074433a7addc 11
djinn77 1:18fff1390131 12 // Definiendo Botones
djinn77 4:074433a7addc 13
djinn77 4:074433a7addc 14 AnalogIn vry(A3);
djinn77 4:074433a7addc 15 AnalogIn vrx(A4);
djinn77 4:074433a7addc 16 DigitalIn sw(A5);
djinn77 1:18fff1390131 17
djinn77 0:22386e919072 18 // Definicion de Funciones
djinn77 0:22386e919072 19 void sendSPI();
djinn77 0:22386e919072 20 void inicializar_matriz();
djinn77 3:ddb6c620cce7 21 void printstatus();
djinn77 6:fae23f72d7f0 22 void desplazar_der();
djinn77 6:fae23f72d7f0 23 void desplazar_izq();
djinn77 6:fae23f72d7f0 24 void arriba();
djinn77 6:fae23f72d7f0 25
djinn77 0:22386e919072 26 // Definicion de Variables
djinn77 4:074433a7addc 27
djinn77 0:22386e919072 28 uint16_t* nivel;
djinn77 1:18fff1390131 29 uint16_t* jugador;
djinn77 3:ddb6c620cce7 30 float velocidad = 1.0;
djinn77 6:fae23f72d7f0 31 float meas_vx;
djinn77 6:fae23f72d7f0 32 float meas_vy;
djinn77 4:074433a7addc 33
djinn77 0:22386e919072 34 void sendSPI(uint8_t d1, uint8_t d2)
djinn77 0:22386e919072 35 {
djinn77 0:22386e919072 36 deviceM.unlock();
djinn77 0:22386e919072 37 ssel=0;
djinn77 0:22386e919072 38 deviceM.write(d1);
djinn77 0:22386e919072 39 deviceM.write(d2);
djinn77 0:22386e919072 40 ssel=1;
djinn77 0:22386e919072 41 deviceM.lock();
djinn77 0:22386e919072 42 };
djinn77 4:074433a7addc 43
djinn77 4:074433a7addc 44
djinn77 0:22386e919072 45 void inicializar_matriz(){
djinn77 0:22386e919072 46 sendSPI(0x0c,1);
djinn77 0:22386e919072 47 sendSPI(0x0b,7);
djinn77 0:22386e919072 48 sendSPI(0x09,0); //SELECCIONA LA LUMINOSIDAD DE LA MATRIZ
djinn77 0:22386e919072 49 sendSPI(0x0A,0x00); //SELECCIONA LA LUMINOSIDAD DE LA MATRIZ
djinn77 0:22386e919072 50
djinn77 0:22386e919072 51 int i;
djinn77 0:22386e919072 52 for (i=0;i<2;i++){
djinn77 0:22386e919072 53 sendSPI(0x0F,1);
djinn77 0:22386e919072 54 wait (0.5);
djinn77 0:22386e919072 55 sendSPI(0x0F,0);
djinn77 0:22386e919072 56 wait (0.5);
djinn77 0:22386e919072 57 }
djinn77 0:22386e919072 58
djinn77 0:22386e919072 59 }
djinn77 4:074433a7addc 60
djinn77 4:074433a7addc 61
djinn77 0:22386e919072 62 int main() {
djinn77 1:18fff1390131 63 pc.baud(38400);
djinn77 0:22386e919072 64 inicializar_matriz();
djinn77 0:22386e919072 65 nivel= AV_1;
djinn77 1:18fff1390131 66 jugador=player;
djinn77 3:ddb6c620cce7 67 tp.attach(&printstatus,0.2);
djinn77 6:fae23f72d7f0 68
djinn77 4:074433a7addc 69
djinn77 0:22386e919072 70 while(1){
djinn77 6:fae23f72d7f0 71
djinn77 4:074433a7addc 72 meas_vx = vrx.read() * 3300; // Convierte el valor de lectura de la entrada entre 0-3300 eje X
djinn77 4:074433a7addc 73 meas_vy = vry.read() * 3300; // Convierte el valor de lectura de la entrada entre 0-3300 eje Y
djinn77 1:18fff1390131 74
djinn77 6:fae23f72d7f0 75 //------ realiza el corriemiento del vector hacia la izq y der respectivamente.
djinn77 6:fae23f72d7f0 76
djinn77 6:fae23f72d7f0 77 if (meas_vx < 1600) // si se cumple esta condicion el jugador se desplaza a la izq
djinn77 6:fae23f72d7f0 78 desplazar_izq();
djinn77 6:fae23f72d7f0 79 else if (meas_vx > 1700) // si se cumple esta condicion el jugador se desplaza a la der
djinn77 6:fae23f72d7f0 80 desplazar_der();
djinn77 6:fae23f72d7f0 81
djinn77 6:fae23f72d7f0 82 //------ mueve a el jugador hacia arriba en el mapa
djinn77 6:fae23f72d7f0 83
djinn77 6:fae23f72d7f0 84 if(meas_vy < 1550)
djinn77 6:fae23f72d7f0 85 arriba();
djinn77 0:22386e919072 86
djinn77 6:fae23f72d7f0 87
djinn77 1:18fff1390131 88
djinn77 4:074433a7addc 89
djinn77 1:18fff1390131 90 // El siguient ciclo realiza el desplazamiento de los vehiculos
djinn77 4:074433a7addc 91
djinn77 0:22386e919072 92 int aux = nivel[0];
djinn77 0:22386e919072 93 for(int i= 0; i<8;i++){
djinn77 0:22386e919072 94 nivel[i]=nivel[i+1];
djinn77 0:22386e919072 95 }
djinn77 0:22386e919072 96 nivel[7] = aux;
djinn77 1:18fff1390131 97
djinn77 3:ddb6c620cce7 98 wait(velocidad);
djinn77 3:ddb6c620cce7 99
djinn77 0:22386e919072 100 }
djinn77 3:ddb6c620cce7 101 }
djinn77 6:fae23f72d7f0 102
djinn77 6:fae23f72d7f0 103 void desplazar_der(){
djinn77 6:fae23f72d7f0 104
djinn77 6:fae23f72d7f0 105 int der = jugador[7];
djinn77 6:fae23f72d7f0 106 for(int i= 7; i>=0;i--){
djinn77 6:fae23f72d7f0 107 jugador[i]=jugador[i-1];
djinn77 6:fae23f72d7f0 108 }
djinn77 6:fae23f72d7f0 109 jugador[0] = der;
djinn77 6:fae23f72d7f0 110
djinn77 6:fae23f72d7f0 111 }
djinn77 6:fae23f72d7f0 112
djinn77 6:fae23f72d7f0 113 void desplazar_izq(){
djinn77 6:fae23f72d7f0 114
djinn77 6:fae23f72d7f0 115 int izq = jugador[0];
djinn77 6:fae23f72d7f0 116 for(int i= 0; i<8;i++){
djinn77 6:fae23f72d7f0 117 jugador[i]=jugador[i+1];
djinn77 6:fae23f72d7f0 118 }
djinn77 6:fae23f72d7f0 119 jugador[7] = izq;
djinn77 6:fae23f72d7f0 120
djinn77 6:fae23f72d7f0 121 }
djinn77 4:074433a7addc 122
djinn77 6:fae23f72d7f0 123 void arriba(){
djinn77 6:fae23f72d7f0 124
djinn77 6:fae23f72d7f0 125 int arb = 1;
djinn77 6:fae23f72d7f0 126 for(int i= 0; i<8;i++){
djinn77 6:fae23f72d7f0 127 jugador[i]= jugador[i] << arb;
djinn77 6:fae23f72d7f0 128 }
djinn77 6:fae23f72d7f0 129 arb++;
djinn77 6:fae23f72d7f0 130
djinn77 6:fae23f72d7f0 131 }
djinn77 3:ddb6c620cce7 132 void printstatus()
djinn77 3:ddb6c620cce7 133 {
djinn77 3:ddb6c620cce7 134 for(int j= 1; j<=8;j++)
djinn77 3:ddb6c620cce7 135 if (printjugador)
djinn77 3:ddb6c620cce7 136 sendSPI(j, nivel[j-1]|jugador[j-1]);
djinn77 3:ddb6c620cce7 137 else
djinn77 3:ddb6c620cce7 138 sendSPI(j, nivel[j-1]);
djinn77 3:ddb6c620cce7 139 printjugador =!printjugador;
djinn77 0:22386e919072 140 }