Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
ModeA/ModeA.cpp
- Committer:
- el17mtu
- Date:
- 2019-05-08
- Revision:
- 10:1c3bdbf2fe9f
- Parent:
- 9:571f92b0211b
- Child:
- 11:e29b173ccb27
File content as of revision 10:1c3bdbf2fe9f:
#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)
{
//variables for the square
x_position = 12;
y_position = 18;
speed = 0;
gravity = 1;
//variables for the bar
screen_width = 80;
bar_width = 10;
bar_speed = 2;
//score = 1;
//generating random sizes of the bar
srand(time(NULL));
size_top = rand() % 15;
srand(time(NULL));
size_bottom = rand() % 15;
}
void ModeA::Bird(N5110 &lcd)
{
lcd.drawRect(x_position, y_position,6,6,FILL_BLACK);
//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 ( pad.check_event(Gamepad::Y_PRESSED) == true) {
speed = speed - gravity*5;
}
if (y_position > 48) {
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 > 50) {
// srand(time(NULL));
// size_top = rand() % 48;
// srand(time(NULL));
// size_bottom = rand() % 48;
// bar_width = 50;
// bar_speed = 0;
// }
// if (screen_width == 5) {
// srand(time(NULL));
// size_top = rand() % 15;
// srand(time(NULL));
// size_bottom = rand() % 15;
// }
// if (screen_width == 11) {
// 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 ( 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)) {
// size_top > y_position
// screen_width == x_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);
}
// if ((screen_width == x_position)&& (size_bottom < (y_position - 6))) {
//
// 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 ((screen_width == x_position)&& (size_top < y_position)) {
score = 1;
lcd.clear();
char buffer[14];
sprintf(buffer,"% .2f ", score);
lcd.printString(buffer,2,2);
lcd.printString("Score =",1,1);
lcd.refresh();
wait(1.0);
}
// if ((screen_width == x_position)&& (size_bottom < (y_position - 6))) {
// }
screen_width = screen_width - bar_speed;
wait(0.1);
}