XJEL2645 (19/20)
/
el17ll
Liu Liting 201199465
main.cpp@13:a57a48e5e256, 2020-05-14 (annotated)
- Committer:
- Ting12138
- Date:
- Thu May 14 15:42:14 2020 +0000
- Revision:
- 13:a57a48e5e256
- Parent:
- 12:3b7811c3502c
the 2645 project
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
eencae | 0:e1442f3aa3c7 | 1 | ///////// pre-processor directives //////// |
Ting12138 | 12:3b7811c3502c | 2 | /* |
Ting12138 | 12:3b7811c3502c | 3 | ELEC2645 Embed Systems Project |
Ting12138 | 12:3b7811c3502c | 4 | School of Electronic &Electrical Engineering |
Ting12138 | 12:3b7811c3502c | 5 | University of Leeds |
Ting12138 | 12:3b7811c3502c | 6 | |
Ting12138 | 12:3b7811c3502c | 7 | Name:Liu Liting |
Ting12138 | 12:3b7811c3502c | 8 | Username:el17ll |
Ting12138 | 12:3b7811c3502c | 9 | Student ID Number: ID For LEEDS:201199465 ID For SWJTU:2017110353 |
Ting12138 | 12:3b7811c3502c | 10 | Date: 15/05/2020 |
Ting12138 | 12:3b7811c3502c | 11 | */ |
eencae | 0:e1442f3aa3c7 | 12 | #include "mbed.h" |
eencae | 0:e1442f3aa3c7 | 13 | #include "Gamepad.h" |
eencae | 0:e1442f3aa3c7 | 14 | #include "N5110.h" |
Ting12138 | 12:3b7811c3502c | 15 | #include "Engine.h" |
eencae | 0:e1442f3aa3c7 | 16 | |
Ting12138 | 12:3b7811c3502c | 17 | #define THE_WALL_WIDTH 2 |
Ting12138 | 12:3b7811c3502c | 18 | #define THE_WALL_GAP 12 |
Ting12138 | 12:3b7811c3502c | 19 | #define ROCKET_BULK 2 |
Ting12138 | 12:3b7811c3502c | 20 | #define FOODS_BULK 2 |
Ting12138 | 12:3b7811c3502c | 21 | #define SPEED 2 |
eencae | 1:25a839625a1e | 22 | |
eencae | 0:e1442f3aa3c7 | 23 | /////////////// structs ///////////////// |
eencae | 0:e1442f3aa3c7 | 24 | struct UserInput { |
eencae | 0:e1442f3aa3c7 | 25 | Direction d; |
eencae | 0:e1442f3aa3c7 | 26 | float mag; |
Ting12138 | 12:3b7811c3502c | 27 | Vector2D mapped_coord; |
eencae | 0:e1442f3aa3c7 | 28 | }; |
eencae | 0:e1442f3aa3c7 | 29 | /////////////// objects /////////////// |
eencae | 0:e1442f3aa3c7 | 30 | N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11); |
eencae | 0:e1442f3aa3c7 | 31 | Gamepad pad; |
Ting12138 | 12:3b7811c3502c | 32 | Engine eng; |
eencae | 6:d9d05b321b4d | 33 | |
eencae | 0:e1442f3aa3c7 | 34 | ///////////// prototypes /////////////// |
eencae | 0:e1442f3aa3c7 | 35 | void init(); |
eencae | 0:e1442f3aa3c7 | 36 | void update_game(UserInput input); |
Ting12138 | 12:3b7811c3502c | 37 | void renders(); |
Ting12138 | 12:3b7811c3502c | 38 | void beginning(); |
Ting12138 | 12:3b7811c3502c | 39 | void end_game(); |
Ting12138 | 12:3b7811c3502c | 40 | void introduction(); |
Ting12138 | 12:3b7811c3502c | 41 | void finger_snap(); |
valavanisalex | 10:167d0aa1c9b3 | 42 | |
Ting12138 | 12:3b7811c3502c | 43 | ///////////// Images /////////////// |
Ting12138 | 12:3b7811c3502c | 44 | const int symbol1[25][32] = { |
Ting12138 | 12:3b7811c3502c | 45 | { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 46 | { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 47 | { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 48 | { 0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0 }, |
Ting12138 | 12:3b7811c3502c | 49 | { 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 50 | { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 51 | { 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 52 | { 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 53 | { 0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,0,1,0,0,1,0,0,1,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 54 | { 0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,1,0,0,1,0,1,0,1,1,0,0,1,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 55 | { 0,0,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,1,1,0,1,1,0,1,0,0,1,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 56 | { 0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,1,0,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 57 | { 0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 58 | { 0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 59 | { 0,0,1,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,0,0 }, |
Ting12138 | 12:3b7811c3502c | 60 | { 0,0,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,0,0 }, |
Ting12138 | 12:3b7811c3502c | 61 | { 0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,1,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 62 | { 0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,1,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 63 | { 0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 64 | { 0,0,0,0,0,0,0,0,0,1,1,0,1,0,1,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 65 | { 0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 66 | { 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 67 | { 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 68 | { 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 69 | { 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 }, |
eencae | 6:d9d05b321b4d | 70 | |
eencae | 0:e1442f3aa3c7 | 71 | |
Ting12138 | 12:3b7811c3502c | 72 | }; |
Ting12138 | 12:3b7811c3502c | 73 | |
Ting12138 | 12:3b7811c3502c | 74 | const int symbol2[25][32] = { |
Ting12138 | 12:3b7811c3502c | 75 | { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 76 | { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 77 | { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 78 | { 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 79 | { 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 80 | { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 81 | { 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 82 | { 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 83 | { 0,0,1,1,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,0,1,0,0,1,0,1,1,1,0,0 }, |
Ting12138 | 12:3b7811c3502c | 84 | { 0,0,1,1,1,0,0,1,1,0,0,1,0,0,0,0,1,1,0,0,1,0,1,0,1,1,0,1,1,1,0,0 }, |
Ting12138 | 12:3b7811c3502c | 85 | { 0,0,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,1,1,0,1,1,0,1,0,0,1,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 86 | { 0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,1,0,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 87 | { 0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,1,1,0,0,0,0,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 88 | { 0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 89 | { 0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 90 | { 0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 91 | { 0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,1,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 92 | { 0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,1,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 93 | { 0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 94 | { 0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 95 | { 0,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 96 | { 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 97 | { 0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,0,0 }, |
Ting12138 | 12:3b7811c3502c | 98 | { 0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0 }, |
Ting12138 | 12:3b7811c3502c | 99 | { 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 100 | |
Ting12138 | 12:3b7811c3502c | 101 | }; |
Ting12138 | 12:3b7811c3502c | 102 | |
Ting12138 | 12:3b7811c3502c | 103 | |
Ting12138 | 12:3b7811c3502c | 104 | //////////////// the main functions ////////////////////// |
Ting12138 | 12:3b7811c3502c | 105 | int main() { |
eencae | 0:e1442f3aa3c7 | 106 | while (1) { |
Ting12138 | 12:3b7811c3502c | 107 | int fps = 6; |
Ting12138 | 12:3b7811c3502c | 108 | |
Ting12138 | 12:3b7811c3502c | 109 | init(); // initialise and then display screen... |
Ting12138 | 12:3b7811c3502c | 110 | beginning(); |
Ting12138 | 12:3b7811c3502c | 111 | introduction(); // The intro of the story |
Ting12138 | 12:3b7811c3502c | 112 | renders(); |
Ting12138 | 12:3b7811c3502c | 113 | wait(1.0f/fps); // and wait for one frame period |
Ting12138 | 12:3b7811c3502c | 114 | |
Ting12138 | 12:3b7811c3502c | 115 | while (1) { |
Ting12138 | 12:3b7811c3502c | 116 | eng.read_input(pad); |
Ting12138 | 12:3b7811c3502c | 117 | eng.update(pad); |
Ting12138 | 12:3b7811c3502c | 118 | renders(); |
Ting12138 | 12:3b7811c3502c | 119 | wait(1.0f/fps); |
Ting12138 | 12:3b7811c3502c | 120 | if (eng.get_final_score() < 3) { // setting diffculty to regard the current ffoods number |
Ting12138 | 12:3b7811c3502c | 121 | fps = 6; |
Ting12138 | 12:3b7811c3502c | 122 | } |
Ting12138 | 12:3b7811c3502c | 123 | if (eng.get_final_score() == 3) { |
Ting12138 | 12:3b7811c3502c | 124 | fps = 9; |
Ting12138 | 12:3b7811c3502c | 125 | } |
Ting12138 | 12:3b7811c3502c | 126 | if (eng.get_final_score() == 4) { |
Ting12138 | 12:3b7811c3502c | 127 | fps = 12; |
Ting12138 | 12:3b7811c3502c | 128 | } |
Ting12138 | 12:3b7811c3502c | 129 | if (eng.get_final_score() == 5) { |
Ting12138 | 12:3b7811c3502c | 130 | fps = 15; |
Ting12138 | 12:3b7811c3502c | 131 | } |
Ting12138 | 12:3b7811c3502c | 132 | if (eng.get_final_score() == 6) { // you win!! |
Ting12138 | 12:3b7811c3502c | 133 | finger_snap(); |
Ting12138 | 12:3b7811c3502c | 134 | break; |
Ting12138 | 12:3b7811c3502c | 135 | } else if (eng.get_final_score() < 0) { // you lose :( |
Ting12138 | 12:3b7811c3502c | 136 | end_game(); |
Ting12138 | 12:3b7811c3502c | 137 | break; |
Ting12138 | 12:3b7811c3502c | 138 | } |
Ting12138 | 12:3b7811c3502c | 139 | } |
eencae | 0:e1442f3aa3c7 | 140 | } |
eencae | 0:e1442f3aa3c7 | 141 | } |
eencae | 0:e1442f3aa3c7 | 142 | |
Ting12138 | 12:3b7811c3502c | 143 | /////////////the introduction part//////////////// |
Ting12138 | 12:3b7811c3502c | 144 | const int introduction1[8][84] = { |
Ting12138 | 12:3b7811c3502c | 145 | { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 146 | { 1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0 }, |
Ting12138 | 12:3b7811c3502c | 147 | { 1,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0 }, |
Ting12138 | 12:3b7811c3502c | 148 | { 1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1 }, |
Ting12138 | 12:3b7811c3502c | 149 | { 1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1 }, |
Ting12138 | 12:3b7811c3502c | 150 | { 1,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0 }, |
Ting12138 | 12:3b7811c3502c | 151 | { 1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0 }, |
Ting12138 | 12:3b7811c3502c | 152 | { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 153 | }; |
Ting12138 | 12:3b7811c3502c | 154 | const int introduction2[8][80] = { |
Ting12138 | 12:3b7811c3502c | 155 | { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 156 | { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0 }, |
Ting12138 | 12:3b7811c3502c | 157 | { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0 }, |
Ting12138 | 12:3b7811c3502c | 158 | { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1 }, |
Ting12138 | 12:3b7811c3502c | 159 | { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1 }, |
Ting12138 | 12:3b7811c3502c | 160 | { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0 }, |
Ting12138 | 12:3b7811c3502c | 161 | { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0 }, |
Ting12138 | 12:3b7811c3502c | 162 | { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 163 | }; |
Ting12138 | 12:3b7811c3502c | 164 | const int introduction3[8][80] = { |
Ting12138 | 12:3b7811c3502c | 165 | { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 166 | { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0 }, |
Ting12138 | 12:3b7811c3502c | 167 | { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0 }, |
Ting12138 | 12:3b7811c3502c | 168 | { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1 }, |
Ting12138 | 12:3b7811c3502c | 169 | { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1 }, |
Ting12138 | 12:3b7811c3502c | 170 | { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0 }, |
Ting12138 | 12:3b7811c3502c | 171 | { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0 }, |
Ting12138 | 12:3b7811c3502c | 172 | { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 173 | }; |
Ting12138 | 12:3b7811c3502c | 174 | |
Ting12138 | 12:3b7811c3502c | 175 | const int intro3[16][18] = { |
Ting12138 | 12:3b7811c3502c | 176 | { 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 177 | { 0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 178 | { 0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 179 | { 0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 180 | { 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 181 | { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0 }, |
Ting12138 | 12:3b7811c3502c | 182 | { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 }, |
Ting12138 | 12:3b7811c3502c | 183 | { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, |
Ting12138 | 12:3b7811c3502c | 184 | { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, |
Ting12138 | 12:3b7811c3502c | 185 | { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 }, |
Ting12138 | 12:3b7811c3502c | 186 | { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0 }, |
Ting12138 | 12:3b7811c3502c | 187 | { 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 188 | { 0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 189 | { 0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 190 | { 0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 191 | { 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 }, |
Ting12138 | 12:3b7811c3502c | 192 | }; |
Ting12138 | 12:3b7811c3502c | 193 | |
Ting12138 | 12:3b7811c3502c | 194 | void init() { |
eencae | 3:910d7e87f367 | 195 | // need to initialise LCD and Gamepad |
eencae | 0:e1442f3aa3c7 | 196 | lcd.init(); |
eencae | 0:e1442f3aa3c7 | 197 | pad.init(); |
eencae | 3:910d7e87f367 | 198 | |
Ting12138 | 12:3b7811c3502c | 199 | // initialise the game with correct ball and paddle bulks |
Ting12138 | 12:3b7811c3502c | 200 | eng.init(THE_WALL_WIDTH,THE_WALL_GAP,FOODS_BULK,SPEED); |
Ting12138 | 12:3b7811c3502c | 201 | } |
Ting12138 | 12:3b7811c3502c | 202 | |
Ting12138 | 12:3b7811c3502c | 203 | void beginning() { |
Ting12138 | 12:3b7811c3502c | 204 | lcd.clear(); |
Ting12138 | 12:3b7811c3502c | 205 | lcd.printString("The power food",0,0); //play messages |
Ting12138 | 12:3b7811c3502c | 206 | lcd.printString("Start story",9,4); |
Ting12138 | 12:3b7811c3502c | 207 | lcd.drawSprite(25,8,25,32,(int *)symbol1); |
Ting12138 | 12:3b7811c3502c | 208 | lcd.refresh(); |
Ting12138 | 12:3b7811c3502c | 209 | pad.tone(440.00,0.60); // adding the theme music, which is my favorite song(hei,hei) |
Ting12138 | 12:3b7811c3502c | 210 | wait(0.60); |
Ting12138 | 12:3b7811c3502c | 211 | pad.tone(329.63,0.60); |
Ting12138 | 12:3b7811c3502c | 212 | wait(0.60); |
Ting12138 | 12:3b7811c3502c | 213 | pad.tone(392.00,0.60); |
Ting12138 | 12:3b7811c3502c | 214 | wait(0.60); |
eencae | 0:e1442f3aa3c7 | 215 | |
Ting12138 | 12:3b7811c3502c | 216 | pad.tone(392.00,0.30); |
Ting12138 | 12:3b7811c3502c | 217 | wait(0.30); |
Ting12138 | 12:3b7811c3502c | 218 | pad.tone(293.66,0.30); |
Ting12138 | 12:3b7811c3502c | 219 | wait(0.30); |
Ting12138 | 12:3b7811c3502c | 220 | pad.tone(293.66,0.30); |
Ting12138 | 12:3b7811c3502c | 221 | wait(0.30); |
Ting12138 | 12:3b7811c3502c | 222 | pad.tone(261.63,0.30); |
Ting12138 | 12:3b7811c3502c | 223 | wait(0.30); |
Ting12138 | 12:3b7811c3502c | 224 | pad.tone(293.66,0.30); |
Ting12138 | 12:3b7811c3502c | 225 | wait(0.30); |
Ting12138 | 12:3b7811c3502c | 226 | pad.tone(261.63,0.30); |
Ting12138 | 12:3b7811c3502c | 227 | wait(0.30); |
Ting12138 | 12:3b7811c3502c | 228 | pad.tone(392.00,0.30); |
Ting12138 | 12:3b7811c3502c | 229 | wait(0.30); |
Ting12138 | 12:3b7811c3502c | 230 | pad.tone(293.66,0.15); |
Ting12138 | 12:3b7811c3502c | 231 | wait(0.30); |
Ting12138 | 12:3b7811c3502c | 232 | pad.tone(261.63,0.15); |
Ting12138 | 12:3b7811c3502c | 233 | wait(0.30); |
Ting12138 | 12:3b7811c3502c | 234 | pad.tone(293.66,0.30); |
Ting12138 | 12:3b7811c3502c | 235 | wait(0.30); |
Ting12138 | 12:3b7811c3502c | 236 | pad.tone(392.00,0.30); |
Ting12138 | 12:3b7811c3502c | 237 | wait(0.30); |
Ting12138 | 12:3b7811c3502c | 238 | |
Ting12138 | 12:3b7811c3502c | 239 | while (pad.check_event(Gamepad::START_PRESSED) == false) { // animation loop until start button is pressed |
Ting12138 | 12:3b7811c3502c | 240 | lcd.clear(); |
Ting12138 | 12:3b7811c3502c | 241 | lcd.printString("Look for food",0,0); |
Ting12138 | 12:3b7811c3502c | 242 | lcd.printString("Start story",9,4); |
Ting12138 | 12:3b7811c3502c | 243 | lcd.drawSprite(25,8,25,32,(int *)symbol1); |
Ting12138 | 12:3b7811c3502c | 244 | lcd.refresh(); |
Ting12138 | 12:3b7811c3502c | 245 | wait(0.5); |
Ting12138 | 12:3b7811c3502c | 246 | lcd.clear(); |
Ting12138 | 12:3b7811c3502c | 247 | lcd.printString("Look for food",0,0); |
Ting12138 | 12:3b7811c3502c | 248 | lcd.printString("Start story",9,4); |
Ting12138 | 12:3b7811c3502c | 249 | lcd.drawSprite(25,8,25,32,(int *)symbol2); |
Ting12138 | 12:3b7811c3502c | 250 | lcd.refresh(); |
Ting12138 | 12:3b7811c3502c | 251 | wait(0.5); |
Ting12138 | 12:3b7811c3502c | 252 | } |
eencae | 0:e1442f3aa3c7 | 253 | } |
eencae | 0:e1442f3aa3c7 | 254 | |
Ting12138 | 12:3b7811c3502c | 255 | void introduction() { // background story |
Ting12138 | 12:3b7811c3502c | 256 | lcd.clear(); |
Ting12138 | 12:3b7811c3502c | 257 | lcd.printString("Liu Liting",0,0); |
Ting12138 | 12:3b7811c3502c | 258 | lcd.printString("ID:201199465",0,4); |
Ting12138 | 12:3b7811c3502c | 259 | lcd.refresh(); |
Ting12138 | 12:3b7811c3502c | 260 | wait(1.0); |
Ting12138 | 12:3b7811c3502c | 261 | lcd.clear(); |
Ting12138 | 12:3b7811c3502c | 262 | lcd.printString("long long ago",0,0); |
Ting12138 | 12:3b7811c3502c | 263 | lcd.refresh(); |
Ting12138 | 12:3b7811c3502c | 264 | wait(1.0); |
Ting12138 | 12:3b7811c3502c | 265 | lcd.printString("Since the",6,2); |
Ting12138 | 12:3b7811c3502c | 266 | lcd.printString("earth destoried",0,3); |
Ting12138 | 12:3b7811c3502c | 267 | lcd.printString("we need go",9,4); |
Ting12138 | 12:3b7811c3502c | 268 | lcd.printString("to find",18,5); |
Ting12138 | 12:3b7811c3502c | 269 | lcd.refresh(); |
Ting12138 | 12:3b7811c3502c | 270 | wait(1.0); |
Ting12138 | 12:3b7811c3502c | 271 | lcd.printString("(Press start)",3,1); |
Ting12138 | 12:3b7811c3502c | 272 | wait(1.0); |
Ting12138 | 12:3b7811c3502c | 273 | while (pad.check_event(Gamepad::START_PRESSED) == false) { // while-looping until the button is on |
Ting12138 | 12:3b7811c3502c | 274 | lcd.refresh(); |
Ting12138 | 12:3b7811c3502c | 275 | wait(0.5); |
Ting12138 | 12:3b7811c3502c | 276 | } |
Ting12138 | 12:3b7811c3502c | 277 | |
Ting12138 | 12:3b7811c3502c | 278 | lcd.clear(); // background story |
Ting12138 | 12:3b7811c3502c | 279 | lcd.printString("You will ",12,0); |
Ting12138 | 12:3b7811c3502c | 280 | lcd.printString("control them",9,1); |
Ting12138 | 12:3b7811c3502c | 281 | lcd.printString("to get what",6,2); |
Ting12138 | 12:3b7811c3502c | 282 | lcd.printString("you need to",9,3); |
Ting12138 | 12:3b7811c3502c | 283 | lcd.printString("then travel in",0,4); |
Ting12138 | 12:3b7811c3502c | 284 | lcd.printString("the forest",3,5); |
Ting12138 | 12:3b7811c3502c | 285 | lcd.refresh(); |
Ting12138 | 12:3b7811c3502c | 286 | wait(1.0); |
Ting12138 | 12:3b7811c3502c | 287 | while ( pad.check_event(Gamepad::START_PRESSED) == false) { // while-looping until the button is on |
Ting12138 | 12:3b7811c3502c | 288 | lcd.refresh(); |
Ting12138 | 12:3b7811c3502c | 289 | wait(0.5); |
Ting12138 | 12:3b7811c3502c | 290 | } |
Ting12138 | 12:3b7811c3502c | 291 | |
Ting12138 | 12:3b7811c3502c | 292 | while (pad.check_event(Gamepad::START_PRESSED) == false) { // tutorial with animation |
Ting12138 | 12:3b7811c3502c | 293 | lcd.clear(); |
Ting12138 | 12:3b7811c3502c | 294 | lcd.printString("Useing your",10,0); |
Ting12138 | 12:3b7811c3502c | 295 | lcd.printString("joystick to",8,1); |
Ting12138 | 12:3b7811c3502c | 296 | lcd.printString("send yourself",2,2); |
Ting12138 | 12:3b7811c3502c | 297 | lcd.printString("to the right",5,3); |
Ting12138 | 12:3b7811c3502c | 298 | lcd.printString("forest",17,4); |
Ting12138 | 12:3b7811c3502c | 299 | lcd.drawSprite(2,40,8,80,(int *)introduction1); |
Ting12138 | 12:3b7811c3502c | 300 | lcd.refresh(); |
Ting12138 | 12:3b7811c3502c | 301 | wait(0.5); |
Ting12138 | 12:3b7811c3502c | 302 | lcd.clear(); |
Ting12138 | 12:3b7811c3502c | 303 | lcd.printString("Useing your",10,0); |
Ting12138 | 12:3b7811c3502c | 304 | lcd.printString("joystick to",8,1); |
Ting12138 | 12:3b7811c3502c | 305 | lcd.printString("send yourself",2,2); |
Ting12138 | 12:3b7811c3502c | 306 | lcd.printString("to the right",5,3); |
Ting12138 | 12:3b7811c3502c | 307 | lcd.printString("forest",17,4); |
Ting12138 | 12:3b7811c3502c | 308 | lcd.drawSprite(2,40,8,80,(int *)introduction2); |
Ting12138 | 12:3b7811c3502c | 309 | lcd.refresh(); |
Ting12138 | 12:3b7811c3502c | 310 | wait(0.5); |
Ting12138 | 12:3b7811c3502c | 311 | lcd.clear(); |
Ting12138 | 12:3b7811c3502c | 312 | lcd.printString("Useing your",10,0); |
Ting12138 | 12:3b7811c3502c | 313 | lcd.printString("joystick to",8,1); |
Ting12138 | 12:3b7811c3502c | 314 | lcd.printString("send yourself",2,2); |
Ting12138 | 12:3b7811c3502c | 315 | lcd.printString("to the right",5,3); |
Ting12138 | 12:3b7811c3502c | 316 | lcd.printString("forest",17,4); |
Ting12138 | 12:3b7811c3502c | 317 | lcd.drawSprite(2,40,8,80,(int *)introduction3); |
Ting12138 | 12:3b7811c3502c | 318 | lcd.refresh(); |
Ting12138 | 12:3b7811c3502c | 319 | wait(0.5); |
Ting12138 | 12:3b7811c3502c | 320 | } |
Ting12138 | 12:3b7811c3502c | 321 | |
Ting12138 | 12:3b7811c3502c | 322 | while (pad.check_event(Gamepad::START_PRESSED) == false) { // tutorial with animation |
Ting12138 | 12:3b7811c3502c | 323 | lcd.clear(); |
Ting12138 | 12:3b7811c3502c | 324 | lcd.printString("try not to",0,0); |
Ting12138 | 12:3b7811c3502c | 325 | lcd.printString("interrupt it",0,1); |
Ting12138 | 12:3b7811c3502c | 326 | lcd.printString("line when",0,3); |
Ting12138 | 12:3b7811c3502c | 327 | lcd.printString("pass thro.",0,4); |
Ting12138 | 12:3b7811c3502c | 328 | lcd.printString("the gap",0,5); |
Ting12138 | 12:3b7811c3502c | 329 | lcd.drawSprite(54,16,16,18,(int *)intro3); |
Ting12138 | 12:3b7811c3502c | 330 | lcd.drawRect(78,0,2,18,FILL_BLACK); |
Ting12138 | 12:3b7811c3502c | 331 | lcd.drawRect(78,30,2,18,FILL_BLACK); |
Ting12138 | 12:3b7811c3502c | 332 | lcd.refresh(); |
Ting12138 | 12:3b7811c3502c | 333 | wait(0.5); |
Ting12138 | 12:3b7811c3502c | 334 | lcd.clear(); |
Ting12138 | 12:3b7811c3502c | 335 | lcd.printString("try not to",0,0); |
Ting12138 | 12:3b7811c3502c | 336 | lcd.printString("interrupt it",0,1); |
Ting12138 | 12:3b7811c3502c | 337 | lcd.printString("line when",0,3); |
Ting12138 | 12:3b7811c3502c | 338 | lcd.printString("pass thro.",0,4); |
Ting12138 | 12:3b7811c3502c | 339 | lcd.printString("the gap",0,5); |
Ting12138 | 12:3b7811c3502c | 340 | lcd.drawSprite(62,16,16,18,(int *)intro3); |
Ting12138 | 12:3b7811c3502c | 341 | lcd.drawRect(78,0,2,18,FILL_BLACK); |
Ting12138 | 12:3b7811c3502c | 342 | lcd.drawRect(78,30,2,18,FILL_BLACK); |
Ting12138 | 12:3b7811c3502c | 343 | lcd.refresh(); |
Ting12138 | 12:3b7811c3502c | 344 | wait(0.5); |
Ting12138 | 12:3b7811c3502c | 345 | } |
Ting12138 | 12:3b7811c3502c | 346 | |
Ting12138 | 12:3b7811c3502c | 347 | lcd.clear(); // last message before the game begins |
Ting12138 | 12:3b7811c3502c | 348 | lcd.printString("rearch 6",12,0); |
Ting12138 | 12:3b7811c3502c | 349 | lcd.printString("foods and then",0,1); |
Ting12138 | 12:3b7811c3502c | 350 | lcd.printString("win the game",6,2); |
Ting12138 | 12:3b7811c3502c | 351 | lcd.printString("God speed",15,3); |
Ting12138 | 12:3b7811c3502c | 352 | lcd.printString("Going!",15,4); |
Ting12138 | 12:3b7811c3502c | 353 | lcd.refresh(); |
Ting12138 | 12:3b7811c3502c | 354 | wait(0.5); |
Ting12138 | 12:3b7811c3502c | 355 | |
Ting12138 | 12:3b7811c3502c | 356 | while (pad.check_event(Gamepad::START_PRESSED) == false) { //sparking leds |
Ting12138 | 12:3b7811c3502c | 357 | pad.leds_on(); |
Ting12138 | 12:3b7811c3502c | 358 | wait(0.25); |
Ting12138 | 12:3b7811c3502c | 359 | pad.leds_off(); |
Ting12138 | 12:3b7811c3502c | 360 | wait(0.25); |
Ting12138 | 12:3b7811c3502c | 361 | } |
Ting12138 | 12:3b7811c3502c | 362 | } |
Ting12138 | 12:3b7811c3502c | 363 | |
Ting12138 | 12:3b7811c3502c | 364 | void renders() { |
eencae | 3:910d7e87f367 | 365 | // clear screen, re-draw and refresh |
eencae | 3:910d7e87f367 | 366 | lcd.clear(); |
Ting12138 | 12:3b7811c3502c | 367 | eng.draw(lcd); |
eencae | 0:e1442f3aa3c7 | 368 | lcd.refresh(); |
eencae | 3:910d7e87f367 | 369 | } |
eencae | 3:910d7e87f367 | 370 | |
Ting12138 | 12:3b7811c3502c | 371 | void finger_snap() { |
Ting12138 | 12:3b7811c3502c | 372 | lcd.clear(); // at this point the game has broken the while loop, clear screen to display congrat message |
Ting12138 | 12:3b7811c3502c | 373 | lcd.printString("Congrat!!",17,0); |
Ting12138 | 12:3b7811c3502c | 374 | lcd.printString("Liu Liting",0,1); |
Ting12138 | 12:3b7811c3502c | 375 | lcd.printString("201199465",15,2); |
eencae | 3:910d7e87f367 | 376 | lcd.refresh(); |
Ting12138 | 12:3b7811c3502c | 377 | |
Ting12138 | 12:3b7811c3502c | 378 | pad.tone(440.00,0.60); // adding the theme music |
Ting12138 | 12:3b7811c3502c | 379 | wait(0.60); |
Ting12138 | 12:3b7811c3502c | 380 | pad.tone(329.63,0.60); |
Ting12138 | 12:3b7811c3502c | 381 | wait(0.60); |
Ting12138 | 12:3b7811c3502c | 382 | pad.tone(392.00,0.60); |
Ting12138 | 12:3b7811c3502c | 383 | wait(0.60); |
Ting12138 | 12:3b7811c3502c | 384 | pad.tone(392.00,0.30); |
Ting12138 | 12:3b7811c3502c | 385 | wait(0.30); |
Ting12138 | 12:3b7811c3502c | 386 | pad.tone(293.66,0.30); |
Ting12138 | 12:3b7811c3502c | 387 | wait(0.30); |
Ting12138 | 12:3b7811c3502c | 388 | pad.tone(293.66,0.30); |
Ting12138 | 12:3b7811c3502c | 389 | wait(0.30); |
Ting12138 | 12:3b7811c3502c | 390 | pad.tone(261.63,0.30); |
Ting12138 | 12:3b7811c3502c | 391 | wait(0.30); |
Ting12138 | 12:3b7811c3502c | 392 | pad.tone(293.66,0.30); |
Ting12138 | 12:3b7811c3502c | 393 | wait(0.30); |
Ting12138 | 12:3b7811c3502c | 394 | pad.tone(261.63,0.30); |
Ting12138 | 12:3b7811c3502c | 395 | wait(0.30); |
Ting12138 | 12:3b7811c3502c | 396 | pad.tone(392.00,0.30); |
Ting12138 | 12:3b7811c3502c | 397 | wait(0.30); |
Ting12138 | 12:3b7811c3502c | 398 | pad.tone(293.66,0.15); |
Ting12138 | 12:3b7811c3502c | 399 | wait(0.30); |
Ting12138 | 12:3b7811c3502c | 400 | pad.tone(261.63,0.15); |
Ting12138 | 12:3b7811c3502c | 401 | wait(0.30); |
Ting12138 | 12:3b7811c3502c | 402 | pad.tone(293.66,0.30); |
Ting12138 | 12:3b7811c3502c | 403 | wait(0.30); |
Ting12138 | 12:3b7811c3502c | 404 | pad.tone(392.00,0.30); |
Ting12138 | 12:3b7811c3502c | 405 | wait(0.30); |
Ting12138 | 12:3b7811c3502c | 406 | while (pad.check_event(Gamepad::START_PRESSED) == false) { // enter loop waiting to restart the game |
Ting12138 | 12:3b7811c3502c | 407 | lcd.printString("press start",9,4); |
Ting12138 | 12:3b7811c3502c | 408 | lcd.printString("to return",15,5); |
Ting12138 | 12:3b7811c3502c | 409 | lcd.refresh(); |
eencae | 3:910d7e87f367 | 410 | pad.leds_on(); |
Ting12138 | 12:3b7811c3502c | 411 | wait(0.5); |
eencae | 3:910d7e87f367 | 412 | pad.leds_off(); |
Ting12138 | 12:3b7811c3502c | 413 | wait(0.5); |
eencae | 3:910d7e87f367 | 414 | } |
Ting12138 | 12:3b7811c3502c | 415 | } |
Ting12138 | 12:3b7811c3502c | 416 | |
Ting12138 | 12:3b7811c3502c | 417 | void end_game() { |
Ting12138 | 12:3b7811c3502c | 418 | lcd.clear(); //break the while loop and enter gameover |
Ting12138 | 12:3b7811c3502c | 419 | lcd.printString("OH!!!",18,1); |
Ting12138 | 12:3b7811c3502c | 420 | lcd.printString("I don't feel",6,2); |
Ting12138 | 12:3b7811c3502c | 421 | lcd.printString("so good ...",9,3); |
Ting12138 | 12:3b7811c3502c | 422 | lcd.refresh(); |
Ting12138 | 12:3b7811c3502c | 423 | |
Ting12138 | 12:3b7811c3502c | 424 | pad.tone(261.63,1.63); // play sad music when lose |
Ting12138 | 12:3b7811c3502c | 425 | wait(1.63); |
Ting12138 | 12:3b7811c3502c | 426 | pad.tone(0.0,0.06); |
Ting12138 | 12:3b7811c3502c | 427 | wait(0.06); |
Ting12138 | 12:3b7811c3502c | 428 | pad.tone(261.63,0.63); |
Ting12138 | 12:3b7811c3502c | 429 | wait(0.63); |
Ting12138 | 12:3b7811c3502c | 430 | pad.tone(293.66,0.63); |
Ting12138 | 12:3b7811c3502c | 431 | wait(0.06); |
Ting12138 | 12:3b7811c3502c | 432 | pad.tone(329.63,0.63); |
Ting12138 | 12:3b7811c3502c | 433 | wait(0.63); |
Ting12138 | 12:3b7811c3502c | 434 | pad.tone(261.63,0.63); |
Ting12138 | 12:3b7811c3502c | 435 | wait(0.06); |
Ting12138 | 12:3b7811c3502c | 436 | pad.tone(329.63,1.63); |
Ting12138 | 12:3b7811c3502c | 437 | wait(1.63); |
Ting12138 | 12:3b7811c3502c | 438 | pad.tone(0.00,0.06); |
Ting12138 | 12:3b7811c3502c | 439 | wait(0.06); |
Ting12138 | 12:3b7811c3502c | 440 | pad.tone(261.63,0.63); |
Ting12138 | 12:3b7811c3502c | 441 | wait(0.63); |
Ting12138 | 12:3b7811c3502c | 442 | pad.tone(293.66,0.63); |
Ting12138 | 12:3b7811c3502c | 443 | wait(0.63); |
Ting12138 | 12:3b7811c3502c | 444 | pad.tone(329.63,0.63); |
Ting12138 | 12:3b7811c3502c | 445 | wait(0.63); |
Ting12138 | 12:3b7811c3502c | 446 | pad.tone(261.63,0.63); |
Ting12138 | 12:3b7811c3502c | 447 | wait(0.63); |
Ting12138 | 12:3b7811c3502c | 448 | pad.tone(349.23,0.63); |
Ting12138 | 12:3b7811c3502c | 449 | wait(0.63); |
Ting12138 | 12:3b7811c3502c | 450 | |
Ting12138 | 12:3b7811c3502c | 451 | while (pad.check_event(Gamepad::START_PRESSED) == false) { // enter loop waiting to restart the game |
Ting12138 | 12:3b7811c3502c | 452 | lcd.printString("press start",9,4); |
Ting12138 | 12:3b7811c3502c | 453 | lcd.printString("to return",15,5); |
Ting12138 | 12:3b7811c3502c | 454 | lcd.refresh(); |
Ting12138 | 12:3b7811c3502c | 455 | wait(0.5); |
Ting12138 | 12:3b7811c3502c | 456 | } |
eencae | 0:e1442f3aa3c7 | 457 | } |