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

Dependencies:   mbed

calle.cpp

Committer:
djinn77
Date:
2018-11-02
Revision:
3:ddb6c620cce7
Parent:
2:1d19bdc7084e
Child:
4:074433a7addc

File content as of revision 3:ddb6c620cce7:

#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);
Ticker tp;
DigitalOut led(LED1);
int printjugador =1;

// Definiendo Botones

DigitalIn pulsador_izq(A5);
DigitalIn pulsador_der(A4);
DigitalIn pulsador_abj(A3);
// 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);
   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 = 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;
}