Mortal Kombat Game ELEC2645

Dependencies:   mbed N5110 ShiftReg Joystick

main.cpp

Committer:
ozy
Date:
2021-04-30
Revision:
19:6c63e1dd7c85
Parent:
18:22bda659c70a
Child:
20:4ca04fd0965a

File content as of revision 19:6c63e1dd7c85:

///////////// includes /////////////////////
#include "mbed.h"
#include "N5110.h"
#include "Fighter.h"
#include "Joystick.h"
#include "Menu.h"
#include "Enemy.h"
#include "GameEngine.h"
///////////// definitions /////////////////
#define HEALTH          30
///////////// objects /////////////////////
GameEngine game;
Fighter fighter;
Menu menu;
Enemy enemy;
DigitalIn buttonA(p29);
DigitalIn buttonB(p28);
DigitalIn buttonC(p27);
DigitalIn buttonD(p26);
AnalogIn  joy_v(p20);
AnalogIn  joy_h(p19);
N5110 lcd(p14,p8,p9,p10,p11,p13,p21);
BusOut leds(LED4,LED3,LED2,LED1);
Serial pc(USBTX, USBRX);
//////////// functions ////////////////////
void init();
void menu_screen();
void draw_background();
void game_over(int loser);


int main() {
    init();
    // int fighter_health = game.get_fighter_health();
    // menu_screen();
    while(1) {
        lcd.clear();
        draw_background();
        game.start(lcd, buttonA, buttonB, buttonC, buttonD, joy_v, joy_h);
        lcd.refresh();
        wait(0.2);
    }
}

void init() { // initialize all devices
    lcd.init();
    lcd.setContrast(0.5);
    game.init();
}

void menu_screen() {
    menu.main_menu(lcd); // printing the menu screen
    wait(3.5f);
    menu.created_by(lcd); // 2nd menu screen
    wait(3.5f);
    menu.homescreen(lcd); // print homescreen
    menu.menu_selection(lcd, buttonA, buttonB, buttonC, buttonD); // function to ask user to select menu item
}


void draw_background() {
        // lcd.drawLine(x1, y1, x2, y2, type);
        lcd.drawLine(0,46,82,46,1);   // draws ground platform
        lcd.drawLine(0,46,0,25,1);   // draws first side wall
        lcd.drawLine(82,46,82,25,1);   // draws second side wall
        lcd.refresh();
    }
    

void game_over(int loser) {
    lcd.clear(); 
    lcd.printString(" Game Over! ",15,2);
    }