Mortal Kombat Game ELEC2645
Dependencies: mbed N5110 ShiftReg Joystick
Diff: GameEngine.cpp
- Revision:
- 16:4a1d916d97c5
- Parent:
- 15:7fd2d34f3be5
- Child:
- 17:928edcdd1058
--- a/GameEngine.cpp Mon Apr 26 23:58:35 2021 +0000 +++ b/GameEngine.cpp Tue Apr 27 22:46:33 2021 +0000 @@ -12,6 +12,7 @@ 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); + check_collision(lcd, buttonC); lcd.refresh(); } @@ -30,20 +31,20 @@ input = 1; } else {input = 0;} - if (diff >= -12 && diff <= 12){ // randomize enemy fight moves only in fighting range + if (diff >= -10 && diff <= 10){ // randomize enemy fight moves only in fighting range _enemy.draw(lcd, input); _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 + // check_end_of_game } // code for enemy to move to fighter if he is to the right - else if ((enemy_pos < fighter_pos) && (diff > 12) && (rand()%2 > 0)) { + else if ((enemy_pos < fighter_pos) && (diff > 10) && (rand()%3 < 1)) { _enemy.add_x(5); _enemy.move_right(lcd); } // code for enemy to move to fighter if he is to the left - else if ((enemy_pos > fighter_pos) && (diff < 12) && (rand()%2 > 0)) { + else if ((enemy_pos > fighter_pos) && (diff < 10) && (rand()%3 < 1)) { _enemy.add_x(-5); _enemy.move_left(lcd); } @@ -52,10 +53,22 @@ } } -void GameEngine::check_collision(N5110 &lcd) { - - // int fighter_pos = _fighter.get_x(); - // int enemy_pos = _enemy.get_x(); - // int diff = fighter_pos - enemy_pos; +void GameEngine::check_collision(N5110 &lcd, DigitalIn &buttonC) { + int fighter_pos = _fighter.get_x(); + int enemy_pos = _enemy.get_x(); + int diff = fighter_pos - enemy_pos; + int input; + if (diff > 0) { + input = 1; + } + else {input = 0;} + int fighter_y = _fighter.get_y(); // getting fighter y pos to avoid enemy hitting fighter while fighter is above him + // code to check enemy collision + // check in fight range check enemy fight move check fighter is not guarding check fighter is on gound + if ((diff >= -10 && diff <= 10) && (_enemy.randomize_moves(lcd, input)) && (buttonC.read() != 1) && (fighter_y == 34)) { + printf("enemy collision detected!"); + printf("random move = %i", _enemy.randomize_moves(lcd, input)); + } + // code to check fight collision }