ELEC2645 (2019/20) / Mbed 2 deprecated ELEC2645_Project_el19tb

Dependencies:   mbed

Revision:
44:f02510eeb165
Parent:
43:2cd1cfe07770
Child:
46:e39abe665271
--- a/Frogger/Frogger.h	Mon May 18 06:34:53 2020 +0000
+++ b/Frogger/Frogger.h	Fri May 22 06:37:50 2020 +0000
@@ -4,24 +4,35 @@
 #include "mbed.h"
 #include "N5110.h"
 #include "Gamepad.h"
+
 #include "Frog.h"
-#include "Level.h"
+#include "Menu.h"
+#include "GraphicEngine.h"
+#include "WaterSprites.h"
+#include "Vehicle.h"
+#include "Background.h"
 
 #include <vector>
+#include <stdio.h> 
+#include <cstddef>
+#include <vector>
 
 class Frogger
 {
     public: 
         
-        GraphicEngine *graphics; // local renderer object
-        Level *level; // local level object
-        Frog *frog;
+        //GraphicEngine *graphics; // local renderer object
+        Frog *frog; // one frog object
+
         int grid; // size of one game unit
        
-        Frogger(GraphicEngine *engine, Level *levelptr, Frog *frog, int grid, int w, int h); // constructor
+        Frogger();
+        Frogger(Frog *frog, int grid, int w, int h); // constructor
         
     public:
         int current_level;
+        bool frogWater; 
+        bool frogOnLog; // attached
         
     public:
     
@@ -31,15 +42,116 @@
         int grid_width; // screen width in grid units
         int lcd_w;
         int lcd_h;
+
+    public:
+
+        // Level One Car objects
+        Object car_row_one_one[3]; 
+        Object car_row_two_one[2];
+        Object car_row_three_one[3];
+        Object car_row_four_one[4];
+
+        // Level One Log objects
+        Object row_one_log[3]; // large sized
+        Object row_two_log[2]; // medium sized
+        Object row_three_log[3]; // large sized
+
+        // Level two Car Objects
+        Object car_row_one_two[4];
+        Object car_row_two_two[3];
+        Object car_row_three_two[4];
+        Object car_row_four_two[3];
+
+        // level two log objects
+        Object level_row_one[2];
+        Object level_row_two[2];
+        Object level_row_three[3];
+    
+    public:
+        void checkFrogOnWater();
+        void checkFrogAction(Object *log);
+        void setupLevelTwoRows();
+        void moveFrogWithLog(Object *log);
+
+        void levelOneCollision();
+        void levelTwoCollision();
+        void checkCollison(Object *object);
+
+        void setupRowDistance(Object *objects, int dis, int array_size);
+        void setDistance(Object *object, int dis);
+
+        void setRowObjects(Object *objecs, int row, int array_size);
+        void createRow(Object *object, int row);
+
+        void setSpriteObjects(Object *objects, char c, int array_size);
+        void setSprite(Object *object, char c);
+
+        void setDirObjects(Object *objecs, int dir, int array_size);
+        void setDir(Object *objecs, int dir);
+
+        //void moveLogLevelTwo();
+
+        void moveLogsLevelOne();
+
+        void moveLogsLevelTwo();
+
+
+        void speedSlow();
+        void speedMedium();
+        void speedFast();
+
+        // LEVEL ONE FUNCTIONS
+        void setupLevelOne();
+        
+        // set up vehicles
+        void setupLevelOneRow();
+        void setupLevelOneXPos();
+        void setupLevelOneSprites();
+        void setupLevelOneDir();
+
+        // set up logs
+        void setupLogsLevelOne();
+
+        void setLogLevelOneXPos();
+        void setLogLevelOneRow();
+        void setLogLevelOneDir();
+        void setLogLevelOneSprites();
+
+        // LEVEL TWO FUNCTIONS
+        void setupLevelTwo();
+        int randCars();
+
+         // setup vehicles
+        void setupLevelTwoXPos();
+        void setupLevelTwoSprites();  
+        void setupLevelTwoDir();
+
+         //log objects    
+        void setupLogLevelTwo();
+
+        void setLogLevelTwoXPos();
+        void setLogLevelTwoRow();
+        void setLogLevelTwoSprite();
+        void setLogLevelTwoDir();
+        void initializeLevelTwo();
+
+        void displayObject(Object &temp_object);  
        
     public:
+
         void start();
         void input();  
         void process_input(); 
         void clear();
+        void runLevelOne();
+        void runLevelTwo();
+        void moveVehiclesLevelOne();
+        void moveVehiclesLevelTwo();
+        void moveVehicle(Object *row, char c, int array_size);
+        void moveIndividualObject(Object *vehicle, char c);
+        void checkOutOfBounds(Object *vehicle);
 
         void runCurrentLevel();
-        void initializeLevelTwo();
         void initializeParams(int w, int h, int grid);
         void initializeEmbeddedSystem();
         void checkCurrentLevelCollision();
@@ -61,13 +173,15 @@
         void loopWater();
         void moveWater();
          
-        void moveChicken(int xWay, int yWay);
         
         void move();
-        
+        void checkFrogOutOfBounds();
+
         void setup();
         void createGoalPost();     
 };
 
+#endif
 
-#endif
\ No newline at end of file
+
+