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
Diff: ModeA/ModeA.cpp
- Revision:
- 14:558c85380f84
- Parent:
- 9:571f92b0211b
- Child:
- 15:1463ebaf5c75
--- a/ModeA/ModeA.cpp Wed May 08 20:27:31 2019 +0000
+++ b/ModeA/ModeA.cpp Thu May 09 01:49:26 2019 +0000
@@ -16,160 +16,131 @@
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;
+
+};
+
+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)
-
+ 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 > 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 > 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);
+ 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();
+ pad.tone(2000.0,0.3);
+ lcd.refresh();
bar_speed = 0;
- speed = 0;
+ speed = 0;
gravity = 0;
y_position = 48;
- bar_width = 0;
- size_top = 0;
+ bar_width = 0;
+ size_top = 0;
size_bottom = 0;
-
-
-
- wait(0.5);
-
- }
-
-
-
- screen_width = screen_width - bar_speed;
- wait(0.1);
-
-
-
+
+ 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;
+
+
-
\ No newline at end of file
+ wait(0.5);
+
+ }
+
+
+
+ screen_width = screen_width - bar_speed;
+ wait(0.1);
+
+
+
+}
+
+
+
+
+