ELEC2645 (2017/18) / Mbed 2 deprecated el16a2t

Dependencies:   mbed

engine/main.cpp

Committer:
el16a2t
Date:
2018-05-01
Revision:
3:124a5eb55c77
Parent:
2:a48df109588e
Child:
4:a6ca44e29e97

File content as of revision 3:124a5eb55c77:

/*
ELEC2645 Embedded Systems Project
School of Electronic & Electrical Engineering
University of Leeds
Name: Adam Thompson
Username: el16a2t
Student ID Number: 201047832
Date: 17/4/18
*/
#include "mbed.h"
#include "Gamepad.h"
#include "N5110.h"
#include "sprites.h"
#include "main.h"


N5110 lcd(PTC9, PTC0, PTC7, PTD2, PTD1, PTC11);
Gamepad pad;

void init();
void startUp();
void newGame();
void gameOver();


int main()
{

    init();
    startUp();
    newGame();
    gameOver();
}

void init()
{

// initialise the lcd and gamepad
    lcd.init();
    lcd.setContrast(0.4);
    pad.init ();
}


void startUp()
{
    //print start screen
    lcd.drawSprite (1,1,8,20,(int*) titlescreen);
    lcd.printString ("PRESS START", 3,1);
    lcd.refresh();
    while ( pad.check_event(Gamepad::START_PRESSED) == false) {

    }
}

void newGame()
{


//set initial location conditions for the player and car and score
    x_player = 24;
    y_player = 29;

    const int arrayNum[3] = {'4', '24', '44'};
    int RandIndex = rand() % 3;

    x_car = arrayNum[RandIndex];
    y_car = 0;

//set score
    score = 0;






//main while loop
    while (1) {

        lcd.clear();


//print the player sprite
        lcd.drawSprite(x_player,y_player,20,15,(int*) player);
//if X pressed, move player left, if B pressed, move player right
        if ( pad.check_event(Gamepad::X_PRESSED) == true) {

            x_player = x_player-20;
        }
//car cannot go further left than the left lane etc
        if (x_player <4) {
            x_player = 4;
        }
        if ( pad.check_event(Gamepad::B_PRESSED) == true) {

            x_player = x_player+20;
        }
        if (x_player >44) {
            x_player = 44;
        }

//print road lines
        lcd.drawRect(1,1,1,1500,FILL_BLACK);

        lcd.drawRect(21,1,1,1500,FILL_BLACK);

        lcd.drawRect(41,1,1,1500,FILL_BLACK);

        lcd.drawRect(61,1,1,1500,FILL_BLACK);




//cars move down the road

        lcd.drawSprite(x_car,y_car,20,15,(int*) car);
        y_car++;

        //display score
        score++;

//        difficulty = read_pot();
        sprintf (str, "%d", score);
        lcd.printString(str,64,1);









        lcd.refresh();
        wait(0.1);







    }

}