ELEC2645 (2018/19) / Mbed 2 deprecated el17mtu_

Dependencies:   mbed

ModeA/ModeA.cpp

Committer:
el17mtu
Date:
2019-05-09
Revision:
14:558c85380f84
Parent:
9:571f92b0211b
Child:
15:1463ebaf5c75

File content as of revision 14:558c85380f84:

#include "ModeA.h"

ModeA::ModeA()
{

}

ModeA::~ModeA()
{

}

void ModeA::screen(N5110 &lcd)
{

    lcd.clear();
    lcd.printString("GAME",0,0);
    lcd.printString("Back:Rules",0,2);

};

void ModeA::initialise(N5110 &lcd)
{
    x_position = 12;
    y_position = 18;
    speed = 1;
    gravity = 1;

    screen_width = 80;
    bar_width = 10;

    bar_speed = 2;
    score = 1;


    srand(time(NULL));
    size_top = rand() % 15;
    srand(time(NULL));
    size_bottom = rand() % 15;


}

void ModeA::Bird(N5110 &lcd)

{

    char buffer[14];
    sprintf(buffer,"%2d",score);
    lcd.printString(buffer,1,1);
    lcd.drawRect(x_position, y_position,6,6,FILL_BLACK);
    lcd.refresh();



    if ( pad.check_event(Gamepad::Y_PRESSED) == true) {

        speed = speed - gravity*5;

    }

    if (y_position > 44) {

        lcd.clear();
        lcd.printString("GAME OVER",6,2);
        lcd.printString("Press BACK",6,4);
        pad.tone(2000.0,0.3);
        lcd.refresh();
        bar_speed = 0;
        speed = 0;
        gravity = 0;
        y_position = 48;
        bar_width = 0;
        size_top = 0;
        size_bottom = 0;

        wait(0.5);

    }



    if (y_position < 0) {
        y_position = 0;
        speed = 0;
    }

    speed = speed + gravity;
    y_position = y_position + speed;
    wait(0.1);


    lcd.drawRect(screen_width,0,bar_width,size_top,FILL_BLACK);
    lcd.drawRect(screen_width,48-size_bottom,bar_width,size_bottom,FILL_BLACK);
    lcd.refresh();

    if ((screen_width == x_position) && (size_top < y_position)) {
        score = score + 1;
        lcd.clear();
        sprintf(buffer,"%2d",score);
        }


    if ( pad.check_event(Gamepad::X_PRESSED) == true) {

        srand(time(NULL));
        size_top = rand() % 15;
        srand(time(NULL));
        size_bottom = rand() % 15;

    }

    if ((screen_width ==  x_position)&& (size_top >  y_position))  {

        lcd.clear();
        lcd.printString("GAME OVER",6,2);
        lcd.printString("Press BACK",6,4);
        pad.tone(2000.0,0.3);
        lcd.refresh();
        bar_speed = 0;
        speed = 0;
        gravity = 0;
        y_position = 48;
        bar_width = 0;
        size_top = 0;
        size_bottom = 0;



        wait(0.5);

    }



    screen_width = screen_width - bar_speed;
    wait(0.1);



}