
hgftf
Dependencies: mbed wave_player 4DGL-uLCD-SE MMA8452
Diff: main.cpp
- Revision:
- 8:34fd253d0fa5
- Parent:
- 7:7ab2f4b09196
- Child:
- 9:d09b96b6c39c
--- a/main.cpp Fri Nov 20 01:55:19 2020 +0000 +++ b/main.cpp Fri Nov 20 03:15:35 2020 +0000 @@ -82,7 +82,7 @@ #define GAME_OVER 7 #define FULL_DRAW 8 #define HAX 9 -#define NOT_UP 10 +#define PAUSE 10 #define IN_GAME_MENU 11 #define NOT_RIGHT 12 #define SNAKE_MAX_LENGTH 50 @@ -114,6 +114,10 @@ if (!inputs.b1) { return HAX; } + + if (!inputs.b2) { + return PAUSE; + } // if we do not satisfy these conditions then // no action is done @@ -236,8 +240,8 @@ do { input = read_inputs(); } while(input.b2); - - uLCD.filled_rectangle(0, 0, 255, 255, BLACK); + + uLCD.filled_rectangle(0, 0, 255, 255, BLACK); main(); } @@ -815,7 +819,8 @@ void go_left2() { - if (get_here(snake.head_x - 1, snake.head_y)->walkable) { + if (!(get_here(snake.head_x - 1, snake.head_y)->walkable)) { + pc.printf("SUCCESS!\n\n"); return; } @@ -892,6 +897,11 @@ draw_game(WIN_GAME); } + uLCD.filled_rectangle(0, 9, 127, 14, 0xFFFFFF); // Top + uLCD.filled_rectangle(0, 13, 2, 114, 0xFFFFFF); // Left + uLCD.filled_rectangle(0, 114, 127, 117, 0xFFFFFF); // Bottom + uLCD.filled_rectangle(124, 14, 127, 117, 0xFFFFFF); // Right + draw_nothing(102, 100); //pc.printf("Shield Counter: %d\n", shieldCounter); switch(action) { @@ -911,10 +921,12 @@ pc.printf("blueCounter: %d\n", blueCounter); pc.printf("redCounter: %d", redCounter); if (reverseCounter == 0) { - go_right2(); + go_right2(); + draw_arrow_right(113, 100); } if (reverseCounter <= 20 && reverseCounter != 0) { go_left2(); + draw_arrow_left(113, 100); pc.printf("reverseCounter: %d", reverseCounter); reverseCounter--; } @@ -1097,9 +1109,11 @@ pc.printf("redCounter: %d", redCounter); if (reverseCounter == 0) { go_left2(); + draw_arrow_left(113, 100); } if (reverseCounter <= 20 && reverseCounter != 0) { - go_right2(); + go_right2(); + draw_arrow_right(113, 100); pc.printf("reverseCounter: %d", reverseCounter); reverseCounter--; } @@ -1282,9 +1296,11 @@ // reverse direction if (reverseCounter == 0) { go_up2(); + draw_arrow_up(113, 100); } if (reverseCounter <= 20 && reverseCounter != 0) { - go_down2(); + go_down2(); + draw_arrow_down(113, 100); pc.printf("reverseCounter: %d", reverseCounter); reverseCounter--; } @@ -1467,9 +1483,11 @@ pc.printf("redCounter: %d", redCounter); if (reverseCounter == 0) { go_down2(); + draw_arrow_down(113, 100); } if (reverseCounter <= 20 && reverseCounter !=0) { go_up2(); + draw_arrow_up(113, 100); pc.printf("reverseCounter: %d", reverseCounter); reverseCounter--; } @@ -1642,6 +1660,45 @@ case HAX: invincibility = true; break; + + case PAUSE: + uLCD.filled_rectangle(0, 0, 255, 255, BLACK); + uLCD.filled_rectangle(0, 9, 127, 14, 0xFFFFFF); // Top + uLCD.filled_rectangle(0, 13, 2, 114, 0xFFFFFF); // Left + uLCD.filled_rectangle(0, 114, 127, 117, 0xFFFFFF); // Bottom + uLCD.filled_rectangle(124, 14, 127, 117, 0xFFFFFF); // Right(); + + int u = 58; + int v = 56; + uLCD.filled_rectangle(0, 0, 255, 255, BLACK); + uLCD.text_width(1); + uLCD.text_height(1); + uLCD.locate(5,7); + uLCD.color(RED); + uLCD.printf("PAUSING...\n"); + draw_snake_head(u+11, v+11); + draw_snake_body(u, v+11); + draw_snake_tail(u-11, v+11); + + uLCD.textbackground_color(BLACK); + uLCD.color(0xFFFFFF); + uLCD.text_width(1); + uLCD.text_height(1); + uLCD.locate(4, 10); + uLCD.printf("Press 'B2'\n"); + uLCD.locate(5, 11); + uLCD.printf("to unpause!\n"); + + do { + input = read_inputs(); + } while(input.b2); + + uLCD.filled_rectangle(0, 9, 127, 14, 0xFFFFFF); // Top + uLCD.filled_rectangle(0, 13, 2, 114, 0xFFFFFF); // Left + uLCD.filled_rectangle(0, 114, 127, 117, 0xFFFFFF); // Bottom + uLCD.filled_rectangle(124, 14, 127, 117, 0xFFFFFF); // Right + uLCD.filled_rectangle(0, 0, 255, 255, BLACK); + break; default: break;