Kostadin Chakarov / Mbed 2 deprecated el17kec

Dependencies:   mbed

main.cpp

Committer:
kocemax
Date:
2019-03-23
Revision:
4:0e01cbb95434
Parent:
3:fe856d0890ee
Child:
5:12c179da4788

File content as of revision 4:0e01cbb95434:

/*
ELEC2645 Embedded Systems Project
School of Electronic & Electrical Engineering University of Leeds
Name: Kostadin Chakarov
Username: el17kec
Student ID Number:201171978 Date:11/03/2019
*/
// Breakout++ logo sprite
const int breakout[10][75] =   {
    { 1,0,0,1,1,0,0,0,0,0,1,0,0,1,1,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0 },
    { 1,0,1,0,0,1,0,0,1,0,1,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,1,1,1,0,0,1,0,1,1,1,1,1,1,1,1,1 },
    { 1,1,0,0,0,0,1,0,0,1,1,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,1,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0 },
    { 1,1,0,1,1,1,1,0,0,0,1,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0 },
    { 1,0,1,0,0,1,1,0,0,0,1,1,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,1,0 },
    { 1,1,0,1,1,0,0,1,0,0,1,0,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,1,1,0,1,0,1,1,1 },
    { 1,1,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,1,0 },
    { 1,1,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,1,1,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0 },
    { 1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0 },
    { 1,0,0,1,1,1,0,0,0,0,1,0,0,0,0,0,1,0,1,1,1,1,1,1,1,1,0,1,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0 },
};

///////// pre-processor directives ////////
#include "mbed.h"
#include "N5110.h"
#include "Gamepad.h"
#include "PlayerControl.h" 
#include "Ball.h"   

const int fps = 10; //sets the fps of the game doesn't change

/////////////// objects ///////////////
N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);  // K64F - pwr from 3V3
Gamepad pad; // Gamepad buttons
PlayerControl cont; // Object for player
Ball ball;

///////////// function prototypes ///////////////
void init();
void welcome();
void render();

///////////// functions ////////////////
int main() 
{   
    init();
    welcome();  // waiting for the user to start
    render();
}

void init() 
{
  // need to initialise LCD and Gamepad
  lcd.init();
  pad.init();
  lcd.setContrast(0.55); // setting contrast to 55% seems good
  lcd.normalMode();      // normal colour mode
  lcd.setBrightness(0.5); // put LED backlight on 50%
}   

void welcome() 
{
    lcd.printString("Welcome to",12,0);
    // x origin, y origin, rows, cols, sprite
    lcd.drawSprite(5,15,10,75,(int *)breakout);   
    lcd.printString("Press Start",9,4);
    lcd.refresh();   
    
    // flash the LEDs until start button is pressed 
    while (pad.check_event(Gamepad::START_PRESSED) == false) 
    {
        for (int i = 1; i < 7; i++) 
        {
        pad.led(i,1);
        wait(0.1);
        pad.led(i,0);
        }
    }
}

void render() {
    while(1) 
    {
        lcd.clear(); // initialise the LCD
        cont.drawPlayer(lcd);
        cont.controlPlayer(pad); 
        cont.get_padPos(pad); 
        ball.drawBall(lcd);
        ball.get_ballPos(pad);
        ball.moveBall();
        ball.hitPad(pad);
        lcd.refresh();
        ball.endCondition(pad, lcd);
        wait(1.0f/fps);
    }
}