Mortal Kombat Game ELEC2645

Dependencies:   mbed N5110 ShiftReg Joystick

Committer:
ozy
Date:
Fri May 07 16:58:36 2021 +0000
Revision:
20:4ca04fd0965a
Parent:
19:6c63e1dd7c85
Child:
21:fad1c9f010d1
Before changing to seamless version

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 9:8c840b08a633 9 ///////////// objects /////////////////////
ozy 6:a1a7dc264fed 10 GameEngine game;
ozy 3:1d99b6ad4f9e 11 Fighter fighter;
ozy 0:99b49fd71085 12 Menu menu;
ozy 7:737fb0c3dbef 13 Enemy enemy;
ozy 3:1d99b6ad4f9e 14 DigitalIn buttonA(p29);
ozy 3:1d99b6ad4f9e 15 DigitalIn buttonB(p28);
ozy 3:1d99b6ad4f9e 16 DigitalIn buttonC(p27);
ozy 3:1d99b6ad4f9e 17 DigitalIn buttonD(p26);
ozy 0:99b49fd71085 18 AnalogIn joy_v(p20);
ozy 0:99b49fd71085 19 AnalogIn joy_h(p19);
ozy 0:99b49fd71085 20 N5110 lcd(p14,p8,p9,p10,p11,p13,p21);
ozy 0:99b49fd71085 21 //////////// functions ////////////////////
ozy 0:99b49fd71085 22 void init();
ozy 0:99b49fd71085 23 void menu_screen();
ozy 0:99b49fd71085 24 void draw_background();
ozy 18:22bda659c70a 25 void game_over(int loser);
ozy 3:1d99b6ad4f9e 26
ozy 0:99b49fd71085 27
ozy 0:99b49fd71085 28 int main() {
ozy 0:99b49fd71085 29 init();
ozy 20:4ca04fd0965a 30 menu_screen();
ozy 0:99b49fd71085 31 while(1) {
ozy 2:1703eb2a68f8 32 lcd.clear();
ozy 3:1d99b6ad4f9e 33 draw_background();
ozy 10:e83899f11e8a 34 game.start(lcd, buttonA, buttonB, buttonC, buttonD, joy_v, joy_h);
ozy 10:e83899f11e8a 35 lcd.refresh();
ozy 18:22bda659c70a 36 wait(0.2);
ozy 0:99b49fd71085 37 }
ozy 0:99b49fd71085 38 }
ozy 0:99b49fd71085 39
ozy 0:99b49fd71085 40 void init() { // initialize all devices
ozy 0:99b49fd71085 41 lcd.init();
ozy 0:99b49fd71085 42 lcd.setContrast(0.5);
ozy 19:6c63e1dd7c85 43 game.init();
ozy 0:99b49fd71085 44 }
ozy 0:99b49fd71085 45
ozy 3:1d99b6ad4f9e 46 void menu_screen() {
ozy 20:4ca04fd0965a 47 menu.menu_render(lcd);
ozy 0:99b49fd71085 48 }
ozy 0:99b49fd71085 49
ozy 0:99b49fd71085 50 void draw_background() {
ozy 0:99b49fd71085 51 // lcd.drawLine(x1, y1, x2, y2, type);
ozy 0:99b49fd71085 52 lcd.drawLine(0,46,82,46,1); // draws ground platform
ozy 0:99b49fd71085 53 lcd.drawLine(0,46,0,25,1); // draws first side wall
ozy 0:99b49fd71085 54 lcd.drawLine(82,46,82,25,1); // draws second side wall
ozy 0:99b49fd71085 55 lcd.refresh();
ozy 20:4ca04fd0965a 56 }
ozy 18:22bda659c70a 57
ozy 0:99b49fd71085 58
ozy 18:22bda659c70a 59 void game_over(int loser) {
ozy 18:22bda659c70a 60 lcd.clear();
ozy 18:22bda659c70a 61 lcd.printString(" Game Over! ",15,2);
ozy 20:4ca04fd0965a 62 }