Mortal Kombat Game ELEC2645

Dependencies:   mbed N5110 ShiftReg Joystick

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 @@
         }
     }
 }
+*/
 
 
-