
Kaif Kutchwala 201267448 ELEC2645 Project
Dependencies: mbed
main.cpp@5:ed71996c0534, 2020-05-16 (annotated)
- Committer:
- KaifK
- Date:
- Sat May 16 14:38:22 2020 +0000
- Revision:
- 5:ed71996c0534
- Parent:
- 4:08a0ff6668df
- Child:
- 6:09a555c0d997
lost code rebuilt part 2 (game.cpp rebuilt update lives and score methods and background)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
KaifK | 0:e47aa16004e6 | 1 | /* |
KaifK | 4:08a0ff6668df | 2 | Shoot |
KaifK | 0:e47aa16004e6 | 3 | ELEC2645 Project |
KaifK | 0:e47aa16004e6 | 4 | EL18KK |
KaifK | 0:e47aa16004e6 | 5 | 201267448 |
KaifK | 0:e47aa16004e6 | 6 | */ |
KaifK | 0:e47aa16004e6 | 7 | |
KaifK | 0:e47aa16004e6 | 8 | #include "mbed.h" |
KaifK | 0:e47aa16004e6 | 9 | #include "Gamepad.h" |
KaifK | 0:e47aa16004e6 | 10 | #include "N5110.h" |
KaifK | 3:f86c1cf90d0d | 11 | #include "Ball.h" |
KaifK | 3:f86c1cf90d0d | 12 | #include "Splash.h" |
KaifK | 4:08a0ff6668df | 13 | #include "Game.h" |
KaifK | 0:e47aa16004e6 | 14 | |
KaifK | 4:08a0ff6668df | 15 | const int a_button [9][9] = { |
KaifK | 4:08a0ff6668df | 16 | {0,0,0,1,1,1,0,0,0}, |
KaifK | 4:08a0ff6668df | 17 | {0,0,1,0,0,0,1,0,0}, |
KaifK | 4:08a0ff6668df | 18 | {0,1,0,0,1,0,0,1,0}, |
KaifK | 4:08a0ff6668df | 19 | {1,0,0,1,0,1,0,0,1}, |
KaifK | 4:08a0ff6668df | 20 | {1,0,0,1,1,1,0,0,1}, |
KaifK | 4:08a0ff6668df | 21 | {1,0,0,1,0,1,0,0,1}, |
KaifK | 4:08a0ff6668df | 22 | {0,1,0,0,0,0,0,1,0}, |
KaifK | 4:08a0ff6668df | 23 | {0,0,1,0,0,0,1,0,0}, |
KaifK | 4:08a0ff6668df | 24 | {0,0,0,1,1,1,0,0,0} |
KaifK | 4:08a0ff6668df | 25 | }; |
KaifK | 4:08a0ff6668df | 26 | const int b_button [9][9] = { |
KaifK | 4:08a0ff6668df | 27 | {0,0,0,1,1,1,0,0,0}, |
KaifK | 4:08a0ff6668df | 28 | {0,0,1,0,0,0,1,0,0}, |
KaifK | 4:08a0ff6668df | 29 | {0,1,0,1,1,1,0,1,0}, |
KaifK | 4:08a0ff6668df | 30 | {1,0,0,1,0,0,1,0,1}, |
KaifK | 4:08a0ff6668df | 31 | {1,0,0,1,1,1,0,0,1}, |
KaifK | 4:08a0ff6668df | 32 | {1,0,0,1,0,0,1,0,1}, |
KaifK | 4:08a0ff6668df | 33 | {0,1,0,1,1,1,0,1,0}, |
KaifK | 4:08a0ff6668df | 34 | {0,0,1,0,0,0,1,0,0}, |
KaifK | 4:08a0ff6668df | 35 | {0,0,0,1,1,1,0,0,0} |
KaifK | 4:08a0ff6668df | 36 | }; |
KaifK | 4:08a0ff6668df | 37 | const int x_button [9][9] = { |
KaifK | 4:08a0ff6668df | 38 | {0,0,0,1,1,1,0,0,0}, |
KaifK | 4:08a0ff6668df | 39 | {0,0,1,0,0,0,1,0,0}, |
KaifK | 4:08a0ff6668df | 40 | {0,1,0,0,0,0,0,1,0}, |
KaifK | 4:08a0ff6668df | 41 | {1,0,0,1,0,1,0,0,1}, |
KaifK | 4:08a0ff6668df | 42 | {1,0,0,0,1,0,0,0,1}, |
KaifK | 4:08a0ff6668df | 43 | {1,0,0,1,0,1,0,0,1}, |
KaifK | 4:08a0ff6668df | 44 | {0,1,0,0,0,0,0,1,0}, |
KaifK | 4:08a0ff6668df | 45 | {0,0,1,0,0,0,1,0,0}, |
KaifK | 4:08a0ff6668df | 46 | {0,0,0,1,1,1,0,0,0} |
KaifK | 4:08a0ff6668df | 47 | }; |
KaifK | 4:08a0ff6668df | 48 | const int y_button [9][9] = { |
KaifK | 4:08a0ff6668df | 49 | {0,0,0,1,1,1,0,0,0}, |
KaifK | 4:08a0ff6668df | 50 | {0,0,1,0,0,0,1,0,0}, |
KaifK | 4:08a0ff6668df | 51 | {0,1,0,0,0,0,0,1,0}, |
KaifK | 4:08a0ff6668df | 52 | {1,0,0,1,0,1,0,0,1}, |
KaifK | 4:08a0ff6668df | 53 | {1,0,0,0,1,0,0,0,1}, |
KaifK | 4:08a0ff6668df | 54 | {1,0,0,0,1,0,0,0,1}, |
KaifK | 4:08a0ff6668df | 55 | {0,1,0,0,1,0,0,1,0}, |
KaifK | 4:08a0ff6668df | 56 | {0,0,1,0,0,0,1,0,0}, |
KaifK | 4:08a0ff6668df | 57 | {0,0,0,1,1,1,0,0,0} |
KaifK | 4:08a0ff6668df | 58 | }; |
KaifK | 4:08a0ff6668df | 59 | //objects |
KaifK | 0:e47aa16004e6 | 60 | Gamepad pad; |
KaifK | 0:e47aa16004e6 | 61 | N5110 lcd; |
KaifK | 4:08a0ff6668df | 62 | Ball ball; |
KaifK | 4:08a0ff6668df | 63 | Splash splash; |
KaifK | 5:ed71996c0534 | 64 | Game game; |
KaifK | 5:ed71996c0534 | 65 | //functions |
KaifK | 5:ed71996c0534 | 66 | void display_menu(); |
KaifK | 4:08a0ff6668df | 67 | //variables |
KaifK | 4:08a0ff6668df | 68 | int initial_pos = WIDTH / 2; |
KaifK | 4:08a0ff6668df | 69 | int dir = 1; |
KaifK | 4:08a0ff6668df | 70 | int dirr = 1; |
KaifK | 4:08a0ff6668df | 71 | int aim_line = WIDTH / 2; |
KaifK | 4:08a0ff6668df | 72 | int _user_input_x = 40; |
KaifK | 4:08a0ff6668df | 73 | int _user_input_y = 12; |
KaifK | 4:08a0ff6668df | 74 | int _ball_x = 35; |
KaifK | 4:08a0ff6668df | 75 | int _ball_y = 43; |
KaifK | 4:08a0ff6668df | 76 | int j = 0; |
KaifK | 4:08a0ff6668df | 77 | int k = 0; |
KaifK | 4:08a0ff6668df | 78 | int sizex = 11; |
KaifK | 4:08a0ff6668df | 79 | int sizey = 15; |
KaifK | 4:08a0ff6668df | 80 | char sprite = 'b'; |
KaifK | 2:21973e665a32 | 81 | |
KaifK | 4:08a0ff6668df | 82 | int main() |
KaifK | 4:08a0ff6668df | 83 | { |
KaifK | 4:08a0ff6668df | 84 | lcd.init(); |
KaifK | 4:08a0ff6668df | 85 | lcd.setContrast(0.5); |
KaifK | 4:08a0ff6668df | 86 | pad.init(); |
KaifK | 4:08a0ff6668df | 87 | lcd.backLightOn(); |
KaifK | 4:08a0ff6668df | 88 | //splash.displayInfo(lcd); |
KaifK | 4:08a0ff6668df | 89 | //splash.playIntro(lcd,ball); |
KaifK | 4:08a0ff6668df | 90 | while (1) |
KaifK | 4:08a0ff6668df | 91 | { |
KaifK | 4:08a0ff6668df | 92 | display_menu(); |
KaifK | 4:08a0ff6668df | 93 | if (pad.A_pressed()) { |
KaifK | 4:08a0ff6668df | 94 | while(!pad.B_pressed()) { |
KaifK | 5:ed71996c0534 | 95 | game.init(); |
KaifK | 5:ed71996c0534 | 96 | game.updateLives(pad); |
KaifK | 5:ed71996c0534 | 97 | game.updateScore(lcd); |
KaifK | 4:08a0ff6668df | 98 | game.displayLevel(1,lcd); |
KaifK | 5:ed71996c0534 | 99 | ball.init(lcd); |
KaifK | 4:08a0ff6668df | 100 | wait_ms(100); |
KaifK | 4:08a0ff6668df | 101 | lcd.refresh(); |
KaifK | 4:08a0ff6668df | 102 | lcd.clear(); |
KaifK | 4:08a0ff6668df | 103 | } |
KaifK | 4:08a0ff6668df | 104 | } |
KaifK | 5:ed71996c0534 | 105 | if (pad.B_pressed()) { |
KaifK | 5:ed71996c0534 | 106 | wait(0.2); //debounce |
KaifK | 5:ed71996c0534 | 107 | while(!pad.B_pressed()) { |
KaifK | 5:ed71996c0534 | 108 | //Instructions Page |
KaifK | 5:ed71996c0534 | 109 | wait_ms(100); |
KaifK | 5:ed71996c0534 | 110 | lcd.refresh(); |
KaifK | 5:ed71996c0534 | 111 | lcd.clear(); |
KaifK | 5:ed71996c0534 | 112 | } |
KaifK | 5:ed71996c0534 | 113 | } |
KaifK | 5:ed71996c0534 | 114 | if (pad.X_pressed()) { |
KaifK | 5:ed71996c0534 | 115 | while(!pad.B_pressed()) { |
KaifK | 5:ed71996c0534 | 116 | //settings |
KaifK | 5:ed71996c0534 | 117 | wait_ms(100); |
KaifK | 5:ed71996c0534 | 118 | lcd.refresh(); |
KaifK | 5:ed71996c0534 | 119 | lcd.clear(); |
KaifK | 5:ed71996c0534 | 120 | } |
KaifK | 5:ed71996c0534 | 121 | } |
KaifK | 5:ed71996c0534 | 122 | if (pad.Y_pressed()) {lcd.turnOff();} |
KaifK | 4:08a0ff6668df | 123 | /* |
KaifK | 4:08a0ff6668df | 124 | ball.init(lcd); |
KaifK | 4:08a0ff6668df | 125 | Vector2D joystick = pad.get_mapped_coord(); |
KaifK | 4:08a0ff6668df | 126 | float ballx = WIDTH / 2 - 7; |
KaifK | 4:08a0ff6668df | 127 | float bally = 43; |
KaifK | 4:08a0ff6668df | 128 | |
KaifK | 4:08a0ff6668df | 129 | lcd.drawLine(0, 24, 84, 24, 1); |
KaifK | 4:08a0ff6668df | 130 | lcd.drawLine(WIDTH / 2 - 5, 41, initial_pos, HEIGHT / 2 + 7, 1); |
KaifK | 4:08a0ff6668df | 131 | lcd.drawLine(WIDTH / 2 + 5, 41, initial_pos, HEIGHT / 2 + 7, 1); |
KaifK | 4:08a0ff6668df | 132 | lcd.drawLine(WIDTH / 2 + 5, 41, WIDTH / 2 - 5, 41, 1); |
KaifK | 4:08a0ff6668df | 133 | lcd.printString("Score", 0, 5); |
KaifK | 2:21973e665a32 | 134 | |
KaifK | 4:08a0ff6668df | 135 | aim_line += dir; |
KaifK | 4:08a0ff6668df | 136 | initial_pos += dirr; |
KaifK | 4:08a0ff6668df | 137 | if (initial_pos > 84) |
KaifK | 4:08a0ff6668df | 138 | { |
KaifK | 4:08a0ff6668df | 139 | dirr = -1; |
KaifK | 4:08a0ff6668df | 140 | } |
KaifK | 4:08a0ff6668df | 141 | |
KaifK | 4:08a0ff6668df | 142 | if (initial_pos < 0) |
KaifK | 4:08a0ff6668df | 143 | { |
KaifK | 4:08a0ff6668df | 144 | dirr = 1; |
KaifK | 4:08a0ff6668df | 145 | } |
KaifK | 4:08a0ff6668df | 146 | |
KaifK | 4:08a0ff6668df | 147 | if (aim_line > 84) |
KaifK | 4:08a0ff6668df | 148 | { |
KaifK | 4:08a0ff6668df | 149 | dir = -1; |
KaifK | 4:08a0ff6668df | 150 | } |
KaifK | 4:08a0ff6668df | 151 | |
KaifK | 4:08a0ff6668df | 152 | if (aim_line < 0) |
KaifK | 4:08a0ff6668df | 153 | { |
KaifK | 4:08a0ff6668df | 154 | dir = 1; |
KaifK | 4:08a0ff6668df | 155 | } |
KaifK | 4:08a0ff6668df | 156 | |
KaifK | 4:08a0ff6668df | 157 | if (pad.A_pressed()) |
KaifK | 4:08a0ff6668df | 158 | { |
KaifK | 3:f86c1cf90d0d | 159 | wait(0.2); |
KaifK | 4:08a0ff6668df | 160 | ball.set_status(0); |
KaifK | 4:08a0ff6668df | 161 | ball.playShot(aim_line, 12, lcd); |
KaifK | 4:08a0ff6668df | 162 | |
KaifK | 3:f86c1cf90d0d | 163 | } |
KaifK | 4:08a0ff6668df | 164 | */ |
KaifK | 4:08a0ff6668df | 165 | |
KaifK | 3:f86c1cf90d0d | 166 | //printf("done"); |
KaifK | 4:08a0ff6668df | 167 | wait_ms(100); |
KaifK | 4:08a0ff6668df | 168 | lcd.refresh(); |
KaifK | 4:08a0ff6668df | 169 | lcd.clear(); |
KaifK | 4:08a0ff6668df | 170 | } |
KaifK | 4:08a0ff6668df | 171 | } |
KaifK | 4:08a0ff6668df | 172 | |
KaifK | 4:08a0ff6668df | 173 | void display_menu() |
KaifK | 4:08a0ff6668df | 174 | { |
KaifK | 4:08a0ff6668df | 175 | splash.drawLogo(13, 0, lcd, ball); |
KaifK | 4:08a0ff6668df | 176 | lcd.printString("Play", 2, 2); |
KaifK | 4:08a0ff6668df | 177 | lcd.printString("How-To?", 2, 3); |
KaifK | 4:08a0ff6668df | 178 | lcd.printString("Settings", 2, 4); |
KaifK | 4:08a0ff6668df | 179 | lcd.printString("Exit", 2, 5); |
KaifK | 4:08a0ff6668df | 180 | lcd.drawSprite(28, 15, 9, 9, (int*) a_button); |
KaifK | 4:08a0ff6668df | 181 | lcd.drawSprite(45, 23, 9, 9, (int*) b_button); |
KaifK | 4:08a0ff6668df | 182 | lcd.drawSprite(52, 31, 9, 9, (int*) x_button); |
KaifK | 4:08a0ff6668df | 183 | lcd.drawSprite(28, 39, 9, 9, (int*) y_button); |
KaifK | 4:08a0ff6668df | 184 | } |