Kaif Kutchwala 201267448 ELEC2645 Project

Dependencies:   mbed

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?

UserRevisionLine numberNew 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 }