Mortal Kombat Game ELEC2645
Dependencies: mbed N5110 ShiftReg Joystick
main.cpp@19:6c63e1dd7c85, 2021-04-30 (annotated)
- Committer:
- ozy
- Date:
- Fri Apr 30 03:49:59 2021 +0000
- Revision:
- 19:6c63e1dd7c85
- Parent:
- 18:22bda659c70a
- Child:
- 20:4ca04fd0965a
GameEngine Nearly Done!
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ozy | 0:99b49fd71085 | 1 | ///////////// includes ///////////////////// |
ozy | 0:99b49fd71085 | 2 | #include "mbed.h" |
ozy | 0:99b49fd71085 | 3 | #include "N5110.h" |
ozy | 0:99b49fd71085 | 4 | #include "Fighter.h" |
ozy | 0:99b49fd71085 | 5 | #include "Joystick.h" |
ozy | 0:99b49fd71085 | 6 | #include "Menu.h" |
ozy | 9:8c840b08a633 | 7 | #include "Enemy.h" |
ozy | 6:a1a7dc264fed | 8 | #include "GameEngine.h" |
ozy | 18:22bda659c70a | 9 | ///////////// definitions ///////////////// |
ozy | 18:22bda659c70a | 10 | #define HEALTH 30 |
ozy | 9:8c840b08a633 | 11 | ///////////// objects ///////////////////// |
ozy | 6:a1a7dc264fed | 12 | GameEngine game; |
ozy | 3:1d99b6ad4f9e | 13 | Fighter fighter; |
ozy | 0:99b49fd71085 | 14 | Menu menu; |
ozy | 7:737fb0c3dbef | 15 | Enemy enemy; |
ozy | 3:1d99b6ad4f9e | 16 | DigitalIn buttonA(p29); |
ozy | 3:1d99b6ad4f9e | 17 | DigitalIn buttonB(p28); |
ozy | 3:1d99b6ad4f9e | 18 | DigitalIn buttonC(p27); |
ozy | 3:1d99b6ad4f9e | 19 | DigitalIn buttonD(p26); |
ozy | 0:99b49fd71085 | 20 | AnalogIn joy_v(p20); |
ozy | 0:99b49fd71085 | 21 | AnalogIn joy_h(p19); |
ozy | 0:99b49fd71085 | 22 | N5110 lcd(p14,p8,p9,p10,p11,p13,p21); |
ozy | 0:99b49fd71085 | 23 | BusOut leds(LED4,LED3,LED2,LED1); |
ozy | 0:99b49fd71085 | 24 | Serial pc(USBTX, USBRX); |
ozy | 0:99b49fd71085 | 25 | //////////// functions //////////////////// |
ozy | 0:99b49fd71085 | 26 | void init(); |
ozy | 0:99b49fd71085 | 27 | void menu_screen(); |
ozy | 0:99b49fd71085 | 28 | void draw_background(); |
ozy | 18:22bda659c70a | 29 | void game_over(int loser); |
ozy | 3:1d99b6ad4f9e | 30 | |
ozy | 0:99b49fd71085 | 31 | |
ozy | 0:99b49fd71085 | 32 | int main() { |
ozy | 0:99b49fd71085 | 33 | init(); |
ozy | 18:22bda659c70a | 34 | // int fighter_health = game.get_fighter_health(); |
ozy | 3:1d99b6ad4f9e | 35 | // menu_screen(); |
ozy | 0:99b49fd71085 | 36 | while(1) { |
ozy | 2:1703eb2a68f8 | 37 | lcd.clear(); |
ozy | 3:1d99b6ad4f9e | 38 | draw_background(); |
ozy | 10:e83899f11e8a | 39 | game.start(lcd, buttonA, buttonB, buttonC, buttonD, joy_v, joy_h); |
ozy | 10:e83899f11e8a | 40 | lcd.refresh(); |
ozy | 18:22bda659c70a | 41 | wait(0.2); |
ozy | 0:99b49fd71085 | 42 | } |
ozy | 0:99b49fd71085 | 43 | } |
ozy | 0:99b49fd71085 | 44 | |
ozy | 0:99b49fd71085 | 45 | void init() { // initialize all devices |
ozy | 0:99b49fd71085 | 46 | lcd.init(); |
ozy | 0:99b49fd71085 | 47 | lcd.setContrast(0.5); |
ozy | 19:6c63e1dd7c85 | 48 | game.init(); |
ozy | 0:99b49fd71085 | 49 | } |
ozy | 0:99b49fd71085 | 50 | |
ozy | 3:1d99b6ad4f9e | 51 | void menu_screen() { |
ozy | 3:1d99b6ad4f9e | 52 | menu.main_menu(lcd); // printing the menu screen |
ozy | 0:99b49fd71085 | 53 | wait(3.5f); |
ozy | 0:99b49fd71085 | 54 | menu.created_by(lcd); // 2nd menu screen |
ozy | 0:99b49fd71085 | 55 | wait(3.5f); |
ozy | 1:3bdadf6f6dbd | 56 | menu.homescreen(lcd); // print homescreen |
ozy | 1:3bdadf6f6dbd | 57 | menu.menu_selection(lcd, buttonA, buttonB, buttonC, buttonD); // function to ask user to select menu item |
ozy | 0:99b49fd71085 | 58 | } |
ozy | 0:99b49fd71085 | 59 | |
ozy | 0:99b49fd71085 | 60 | |
ozy | 0:99b49fd71085 | 61 | void draw_background() { |
ozy | 0:99b49fd71085 | 62 | // lcd.drawLine(x1, y1, x2, y2, type); |
ozy | 0:99b49fd71085 | 63 | lcd.drawLine(0,46,82,46,1); // draws ground platform |
ozy | 0:99b49fd71085 | 64 | lcd.drawLine(0,46,0,25,1); // draws first side wall |
ozy | 0:99b49fd71085 | 65 | lcd.drawLine(82,46,82,25,1); // draws second side wall |
ozy | 0:99b49fd71085 | 66 | lcd.refresh(); |
ozy | 0:99b49fd71085 | 67 | } |
ozy | 18:22bda659c70a | 68 | |
ozy | 0:99b49fd71085 | 69 | |
ozy | 18:22bda659c70a | 70 | void game_over(int loser) { |
ozy | 18:22bda659c70a | 71 | lcd.clear(); |
ozy | 18:22bda659c70a | 72 | lcd.printString(" Game Over! ",15,2); |
ozy | 18:22bda659c70a | 73 | } |
ozy | 0:99b49fd71085 | 74 | |
ozy | 3:1d99b6ad4f9e | 75 |