ELEC2645 (2016/17) / Mbed 2 deprecated 2645_Project_el15as

Dependencies:   mbed

main.cpp

Committer:
el15as
Date:
2017-05-03
Revision:
8:c3cf8d1057bb
Parent:
7:b54323241435
Child:
9:35f992fd407b

File content as of revision 8:c3cf8d1057bb:

#include "mbed.h"
#include "N5110.h"
#include "Gamepad.h"
#include "GameEngine.h"
#include "MenuEngine.h"

N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
Serial pc(USBTX, USBRX); // tx, rx
Gamepad pad;
GameEngine game;
MenuEngine menu;

void update_screen();
void welcome();

bool showStart = true;

int main()
{
    lcd.init();
    pad.init();

    lcd.normalMode();
    lcd.setBrightness(1);

    while (!pad.check_event(Gamepad::START_PRESSED)) {
        welcome();
    }

    while(1)
    {
        menu.init();
        while (!menu.gameStarted)
        {
            menu.read_input(pad, pc);
            menu.update(pad, pc, lcd);
            menu.draw(lcd,pc);
            menu.check_finish(pad, lcd, pc);
            wait(1.0f/10);
        }
        game.init(menu.selectedLevel, menu.soundIsOn, pad);
        while (game.isActive)
        {
            game.read_input(pad,pc);
            game.update(pad, pc, lcd);
            game.draw(lcd);
            game.check_finish(pad, lcd);
            wait(1.0f/10); // 10 fps
        }
    }
}

void welcome()
{
    lcd.clear();
    lcd.printString("Escape", 5, 0);
    lcd.printString("is", 30, 1);
    lcd.printString("an", 35, 2);
    lcd.printString("Ellusion", 30, 3);
    if (showStart)
    {
        lcd.printString("Press START", 10, 5);
        showStart = false;
    }
    else
    {
        showStart = true;
    }
    lcd.refresh();
    wait(0.5);
}