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

Dependencies:   mbed

calle.cpp

Committer:
djinn77
Date:
2018-10-30
Revision:
1:18fff1390131
Parent:
0:22386e919072
Child:
2:1d19bdc7084e

File content as of revision 1:18fff1390131:

#include "mbed.h"
#include "avenidas.h"

// Definicion de parametros de comunicacion
Serial pc(USBTX,USBRX);
SPI deviceM(PB_15, PB_14, PB_13);
DigitalOut ssel (PB_12);

// Definiendo Botones

DigitalIn pulsador_izq(A5);
DigitalIn pulsador_der(A4);

// Definicion de Funciones
void sendSPI();
void inicializar_matriz();

// Definicion de Variables

uint16_t* nivel;
uint16_t* jugador;
float velocidad = 0.8;


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;
   
   while(1){

// realiza el corriemiento del vector hacia la izq.
  if(pulsador_izq == 1){
      
      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(pulsador_der == 1){
      
      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(pulsador_abj == 1){
      
      int abj = 0;
      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 i= 1; i<=8;i++){
          sendSPI(i, nivel[i-1]|jugador[i-1]);
          }
      wait(velocidad);
                       
       }
       
       

}