fsfs

Dependencies:   4DGL-uLCD-SE LSM303D mbed

Fork of LSM303D_SPI by Shurjo Banerjee

main.cpp

Committer:
shurjo_1234
Date:
2014-10-21
Revision:
0:684294feee71
Child:
1:bad5121a35c7

File content as of revision 0:684294feee71:

#include "mbed.h"
#include "LSM303D.h"
 
SPI spi(p5, p6, p7); // mosi, miso, sclk

LSM303D sensor1(spi,p15);
LSM303D sensor2(spi,p16);
LSM303D sensor3(spi,p17);
LSM303D sensor4(spi,p18);

#include "uLCD_4DGL.h"

uLCD_4DGL uLCD(p9,p10,p11); // serial tx, serial rx, reset pin;
 
int main() {
    // Chip must be deselected
    sensor1.initialize();
    float vx_old = sensor1.magnitometer(2);
    
    float fx=63.0,fy=2.0,vx= 0.0,vy=0.4;
    int x=63,y=2,radius=2;
    uLCD.background_color(BLACK);
    uLCD.cls();
    
    int pts[20];
    for (int level=1; level<=5; level++)
    {   
        if (level == 1)
        {
            pts[0] = 30; pts[1] = 63;
            pts[2] = 96; pts[3] = 63;            
        }
        else if (level == 2)
        {
            pts[0] = 0; pts[1] = 40;
            pts[2] = 50; pts[3] = 40;
            
            pts[4] = 76; pts[5] = 80;
            pts[6] = 126; pts[7] = 80;
            
        }        
        else if (level == 3)
        {
            pts[0] = 0; pts[1] = 30;
            pts[2] = 50; pts[3] = 30;
            
            pts[4] = 76; pts[5] = 60;
            pts[6] = 126; pts[7] = 60;
            
            pts[8] = 76; pts[9] = 90;
            pts[10] = 126; pts[11] = 90;
            
        }        
        else if (level == 4)
        {
            pts[0] = 0; pts[1] = 28;
            pts[2] = 50; pts[3] = 28;
            
            pts[4] = 76; pts[5] = 56;
            pts[6] = 126; pts[7] = 56;
            
            pts[8] = 76; pts[9] = 84;
            pts[10] = 126; pts[11] = 84;
            
            pts[12] = 76; pts[13] = 112;
            pts[14] = 126; pts[15] = 112;            
        }        
        else 
        {
            pts[0] = 0; pts[1] = 20;
            pts[2] = 50; pts[3] = 20;
            
            pts[4] = 76; pts[5] = 40;
            pts[6] = 126; pts[7] = 40;
            
            pts[8] = 76; pts[9] = 60;
            pts[10] = 126; pts[11] = 60;
            
            pts[12] = 76; pts[13] = 80;
            pts[14] = 126; pts[15] = 80;
            
            pts[16] = 76; pts[17] = 100;
            pts[18] = 126; pts[19] = 100;            
        }               
        
        uLCD.cls();
        for (int i=0; i<level; i++)
        {      
            uLCD.line(pts[4*i], pts[4*i+1], pts[4*i+2], pts[4*i+3], WHITE);
        }
      
        y = 2;
        fy = 2; 
        
        while (y<126)
        {           
            vx = (sensor1.magnitometer(2)-vx_old)/100;
            //draw ball
            uLCD.filled_circle(x, y, radius, RED);
            //bounce off edge walls and slow down a bit?
            
            for (int i=0; i<level; i++)
            {      
                if (x>pts[4*i] && x<pts[4*i+2] && y>pts[4*i+1]-1 && y<pts[4*i+3]+1)
                {
                    uLCD.cls();
                    uLCD.text_width(4); //4X size text
                    uLCD.text_height(4);
                    uLCD.color(RED);  
                    uLCD.locate(0,0);
                    uLCD.printf("GAME    OVER");
                    return 0;                    
                }   
            }
            
            uLCD.filled_circle(x, y, radius, BLACK);
            //move ball
            fx=fx+vx;
            fy=fy+vy;
            x=(int)fx;
            y=(int)fy;
            if (x<0)
            {
                x += 126;
                fx = x;
            }
            if (x>126)
            {
                x -= 126;
                fx = x;
            }
            
        }
        uLCD.cls();
        uLCD.text_width(4); //4X size text
        uLCD.text_height(4);
        uLCD.color(RED);
        uLCD.locate(1,1);
    
        if (level <= 4)
                uLCD.printf("%2D",level+1);
        else
        {
                uLCD.locate(1,1);
                uLCD.printf("YOU WIN");
        }
        wait(1);
        
    }
       

    
}