Mortal Kombat Game ELEC2645
Dependencies: mbed N5110 ShiftReg Joystick
Diff: main.cpp
- Revision:
- 6:a1a7dc264fed
- Parent:
- 5:889ad974b64d
- Child:
- 7:737fb0c3dbef
--- a/main.cpp Tue Apr 20 09:01:35 2021 +0000 +++ b/main.cpp Wed Apr 21 22:56:55 2021 +0000 @@ -4,13 +4,15 @@ #include "Fighter.h" #include "Joystick.h" #include "Menu.h" -#include "Enemy.h" +// #include "Enemy.h" +#include "GameEngine.h" ///////////// defines ///////////////////// #define GROUND 34 ///////////// objects /////////////////// +GameEngine game; Fighter fighter; Menu menu; -Enemy enemy; +// Enemy enemy; DigitalIn buttonA(p29); DigitalIn buttonB(p28); DigitalIn buttonC(p27); @@ -28,25 +30,26 @@ void move_enemy(); - int main() { init(); // menu_screen(); while(1) { lcd.clear(); draw_background(); - move_sprite(); - // move_enemy(); + // fighter.draw(lcd, buttonA, buttonB, buttonC, buttonD, joy_v, joy_h); + // initialize game + game.init(lcd, buttonA, buttonB, buttonC, buttonD, joy_v, joy_h); + } } void init() { // initialize all devices lcd.init(); lcd.setContrast(0.5); - fighter.set_x(33); // setting initial position of fighter - fighter.set_y(GROUND); // placing fighter on ground - enemy.set_x(33); // setting initial position of fighter - enemy.set_y(GROUND); // placing fighter on ground + //fighter.set_x(33); // setting initial position of fighter + //fighter.set_y(GROUND); // placing fighter on ground + // enemy.set_x(40); // setting initial position of enemy + // enemy.set_y(GROUND); // placing enemy on ground } void menu_screen() { @@ -68,116 +71,9 @@ } -void move_sprite() { - // getting joystick coordinates using read() function - // joystick centered at (0.50,0.50) with utmost left at (1.00,0.50) and utmost right being (0.00,0.50) - // read each of the pins - float x = joy_h.read(); - float y = joy_v.read(); - printf("x = %.2f | y = %.2f \n",x,y); - // get x position of fighter - int x_pos = fighter.get_x(); - printf("fighter x pos = %i \n", x_pos); - /* -Code idea: -if joystick is not moved , display standing sprite -if joystick is moved right, toggle between runright and midrunright -if joystick is moved left, toggle between runleft and midrunleft -*/ - if(x > 0.48 && x < 0.52) { // joystick not moved - we use ± 0.02 to take account of fluctuation in joystick tolerance and noice on ADC - fighter.draw(lcd); // draw standing fighter - lcd.refresh(); - wait(0.3); - - // Preform kick move if user presses button A - if (buttonA.read() == 1) { - fighter.kick_right(lcd); // draw kick on same coordinates as the standing sprite - lcd.refresh(); - wait(0.3); - } - // Preform punch move if user presses button B - if (buttonB.read() == 1) { - fighter.punch_right(lcd); // draw kick - lcd.refresh(); - wait(0.3); - } - // Guard if user presses button C - while (buttonC.read() == 1) { - fighter.guard(lcd); // draw guard move frame - lcd.refresh(); - wait(0.3); - } - } - else if(x < 0.48) { // joystick moved to the right - // print the move_right animation, refresh, then print the 2nd move_right animation (toggling animations to create moving legs!) - fighter.add_x(5); // increment by 5 - fighter.move_right(lcd); - lcd.refresh(); - wait(0.1); - fighter.move_right2(lcd); - lcd.refresh(); - wait(0.08); - - if (x_pos >= 65) { // code to stop fighter moving out of lcd screen - fighter.add_x(-5); - } - - - // kick if user presses button A - if (buttonA.read() == 1) { - fighter.kick_right(lcd); - lcd.refresh(); - wait(0.3); - } - // Preform punch move if user presses button B - if (buttonB.read() == 1) { - fighter.punch_right(lcd); // draw kick on same coordinates as the sprite - lcd.refresh(); - wait(0.3); - } - // Guard if user presses button C - while (buttonC.read() == 1) { // we use while not if here because user would hold to guard - fighter.guard(lcd); // draw kick on same coordinates as the sprite - lcd.refresh(); - wait(0.3); - } - } - - else if(x > 0.52) { // joystick moved to the left - fighter.add_x(-5); // decrement left by 5 - fighter.move_left(lcd); - lcd.refresh(); - wait(0.1); - fighter.move_left2(lcd); - lcd.refresh(); - wait(0.08); - - if (x_pos <= 6) { // code to stop fighter moving out of lcd screen - fighter.add_x(5); - } - - // kick if user presses button A - if (buttonA.read() == 1) { - fighter.kick_left(lcd); - lcd.refresh(); - wait(0.3); - } - if (buttonB.read() == 1) { - fighter.punch_left(lcd); // draw punch on same coordinates as the sprite - lcd.refresh(); - wait(0.3); - } - // Guard if user presses button C - if (buttonC.read() == 1) { - fighter.guard(lcd); // draw guard on same coordinates as the sprite - lcd.refresh(); - wait(0.3); - } - } -} - +// IGNORE THIS FUNCTION FOR NOW (look at fighter class function 'draw') void move_enemy() { // read each of the pins float x = joy_h.read(); @@ -258,6 +154,6 @@ } } } +*/ -