Adam Baker 201166301

Dependencies:   mbed Gamepad N5110

main.cpp

Committer:
adambakerwa
Date:
2019-03-25
Revision:
13:35a459a33bbd
Parent:
12:1253afc5d536
Child:
14:d8ced73dbb83

File content as of revision 13:35a459a33bbd:

#include "mbed.h"
#include "Gamepad.h"
#include "N5110.h"
#include "Runner.h"
#include "Levels.h"
#include "Animation.h"

N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);
Gamepad pad;
Runner runner;
Animation ani;
Ticker ticker;


volatile int timer_flag = 0;

void timer_isr();


int main()
{

    int fps = 2;

    pad.init();
    lcd.init();
    lcd.setContrast(0.5);
    Move move;

    move = runner.init(move);

    ticker.attach(&timer_isr,1.0f/fps);


    while(1) {

        lcd.clear();

        float speed = runner.getSpeed(pad);

        move = runner.nextLevel(move); //must happen befofre 'fall' otherwise runner can fall out of screen

        runner.whatLevel(move, lcd);

        move = runner.buttonPress(move, lcd, pad);

        move = runner.jump(move, lcd);

        move = runner.wallJumpL(move, lcd, speed);

        move = runner.wallJumpR(move, lcd, speed);

        move = runner.runLeft(move, lcd, speed);

        move = runner.runRight(move, lcd, speed);

        move = runner.fall(move, lcd);

        move = runner.runnerState(move, lcd, speed); //what state runner is in (must come after next level

        runner.whatLevel(move, lcd); // call level


       
        char buffer[14];
        sprintf(buffer,"%i",move.cr);
        lcd.printString(buffer,0,1);

        //sleep(); //sleep untill next refresh

        if (timer_flag == true) {
            timer_flag = 0;  // if it has, clear the flag

            lcd.refresh();

        }
        
        sleep();

    }

}

void timer_isr()
{

    timer_flag = 1;   // set flag in ISR
}


//rtos