Kaif Kutchwala 201267448 ELEC2645 Project

Dependencies:   mbed

Committer:
KaifK
Date:
Sun May 17 00:59:51 2020 +0000
Revision:
7:2a3b566aedd3
Parent:
6:09a555c0d997
Child:
8:5ede90f99a27
aiming mechanism rebuilt gn

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 7:2a3b566aedd3 98 game.readInput(pad,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 6:09a555c0d997 122 if (pad.Y_pressed()) {
KaifK 6:09a555c0d997 123 lcd.turnOff();
KaifK 6:09a555c0d997 124 pad.leds(0.0);
KaifK 6:09a555c0d997 125 }
KaifK 4:08a0ff6668df 126 /*
KaifK 4:08a0ff6668df 127 ball.init(lcd);
KaifK 6:09a555c0d997 128
KaifK 4:08a0ff6668df 129 float ballx = WIDTH / 2 - 7;
KaifK 4:08a0ff6668df 130 float bally = 43;
KaifK 4:08a0ff6668df 131
KaifK 4:08a0ff6668df 132 lcd.drawLine(0, 24, 84, 24, 1);
KaifK 6:09a555c0d997 133
KaifK 6:09a555c0d997 134
KaifK 4:08a0ff6668df 135 lcd.printString("Score", 0, 5);
KaifK 2:21973e665a32 136
KaifK 4:08a0ff6668df 137 aim_line += dir;
KaifK 4:08a0ff6668df 138 initial_pos += dirr;
KaifK 4:08a0ff6668df 139 if (initial_pos > 84)
KaifK 4:08a0ff6668df 140 {
KaifK 4:08a0ff6668df 141 dirr = -1;
KaifK 4:08a0ff6668df 142 }
KaifK 4:08a0ff6668df 143
KaifK 4:08a0ff6668df 144 if (initial_pos < 0)
KaifK 4:08a0ff6668df 145 {
KaifK 4:08a0ff6668df 146 dirr = 1;
KaifK 4:08a0ff6668df 147 }
KaifK 4:08a0ff6668df 148
KaifK 4:08a0ff6668df 149 if (aim_line > 84)
KaifK 4:08a0ff6668df 150 {
KaifK 4:08a0ff6668df 151 dir = -1;
KaifK 4:08a0ff6668df 152 }
KaifK 4:08a0ff6668df 153
KaifK 4:08a0ff6668df 154 if (aim_line < 0)
KaifK 4:08a0ff6668df 155 {
KaifK 4:08a0ff6668df 156 dir = 1;
KaifK 4:08a0ff6668df 157 }
KaifK 4:08a0ff6668df 158
KaifK 4:08a0ff6668df 159 if (pad.A_pressed())
KaifK 4:08a0ff6668df 160 {
KaifK 3:f86c1cf90d0d 161 wait(0.2);
KaifK 4:08a0ff6668df 162 ball.set_status(0);
KaifK 4:08a0ff6668df 163 ball.playShot(aim_line, 12, lcd);
KaifK 4:08a0ff6668df 164
KaifK 3:f86c1cf90d0d 165 }
KaifK 4:08a0ff6668df 166 */
KaifK 4:08a0ff6668df 167
KaifK 3:f86c1cf90d0d 168 //printf("done");
KaifK 4:08a0ff6668df 169 wait_ms(100);
KaifK 4:08a0ff6668df 170 lcd.refresh();
KaifK 4:08a0ff6668df 171 lcd.clear();
KaifK 4:08a0ff6668df 172 }
KaifK 4:08a0ff6668df 173 }
KaifK 4:08a0ff6668df 174
KaifK 4:08a0ff6668df 175 void display_menu()
KaifK 4:08a0ff6668df 176 {
KaifK 4:08a0ff6668df 177 splash.drawLogo(13, 0, lcd, ball);
KaifK 4:08a0ff6668df 178 lcd.printString("Play", 2, 2);
KaifK 4:08a0ff6668df 179 lcd.printString("How-To?", 2, 3);
KaifK 4:08a0ff6668df 180 lcd.printString("Settings", 2, 4);
KaifK 4:08a0ff6668df 181 lcd.printString("Exit", 2, 5);
KaifK 4:08a0ff6668df 182 lcd.drawSprite(28, 15, 9, 9, (int*) a_button);
KaifK 4:08a0ff6668df 183 lcd.drawSprite(45, 23, 9, 9, (int*) b_button);
KaifK 4:08a0ff6668df 184 lcd.drawSprite(52, 31, 9, 9, (int*) x_button);
KaifK 4:08a0ff6668df 185 lcd.drawSprite(28, 39, 9, 9, (int*) y_button);
KaifK 4:08a0ff6668df 186 }