Mortal Kombat Game ELEC2645
Dependencies: mbed N5110 ShiftReg Joystick
GameEngine.cpp
- Committer:
- ozy
- Date:
- 2021-04-25
- Revision:
- 13:eaf070d5f599
- Parent:
- 12:b4477a312158
- Child:
- 14:7f23841685ad
File content as of revision 13:eaf070d5f599:
#include "GameEngine.h" GameEngine::GameEngine() {} void GameEngine::init(){ _fighter.init(); } void GameEngine::start(N5110 &lcd, DigitalIn &buttonA, DigitalIn &buttonB, DigitalIn &buttonC, DigitalIn &buttonD, AnalogIn &joy_v, AnalogIn &joy_h) { // initializing and drawing enemy _enemy.init(1); enemy_AI(lcd); // function that draws fighter and allows user to control it _fighter.move_fighter(lcd, buttonA, buttonB, buttonC, buttonD, joy_v, joy_h); lcd.refresh(); } void GameEngine::enemy_AI(N5110 &lcd) { int fighter_pos = _fighter.get_x(); printf("f pos = %i \n", fighter_pos); int enemy_pos = _enemy.get_x(); printf("e pos = %i \n", enemy_pos); int input = 0; int diff = fighter_pos - enemy_pos; printf("diff = %i \n", diff); // if difference is positive, fighter is to the right so enemy must look right (if input is 1, enemy looks right) and vice versa if (diff > 0) { input = 1; } else {input = 0;} _enemy.draw(lcd, input); if (diff >= -15 && diff <= 15){ // randomize enemy fight moves only in fighting range _enemy.randomize_moves(lcd, input); // check for collision (without guard ON) // function to reduce enemy health or fighter health // check_enemy_dead and deploy next god } else if (diff < 0) { // negative difference so fighter is to the left so enemy must move left _enemy.move_left(lcd); } else { // move enemy to fighter until within fighting range _enemy.draw(lcd, input); } } /* void GameEngine::enemy_move_around(N5110 &lcd) { int fighter_pos = _fighter.get_x(); printf("f pos = %i \n", fighter_pos); int enemy_pos = _enemy.get_x(); printf("e pos = %i \n", enemy_pos); int diff = fighter_pos - enemy_pos; if (diff < 0) { // negative difference so fighter is to the left so enemy must move left _enemy.move_left(lcd); } } */