Mortal Kombat Game ELEC2645

Dependencies:   mbed N5110 ShiftReg Joystick

Committer:
ozy
Date:
Thu Apr 29 22:40:08 2021 +0000
Revision:
18:22bda659c70a
Parent:
14:7f23841685ad
Child:
19:6c63e1dd7c85
GameEngine Update

Who changed what in which revision?

UserRevisionLine numberNew 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 18:22bda659c70a 48 game.init(lcd, buttonA, buttonB, buttonC);
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