ELEC2645 (2019/20) / Mbed 2 deprecated ELEC2645_Project_el19tb

Dependencies:   mbed

Committer:
el19tb
Date:
Sat May 23 21:47:19 2020 +0000
Revision:
48:8ccfc74b60a5
Parent:
47:29c4796a49e5
Child:
50:9ffeb4a10c0a
fixed frog on the log mechanic, fixed log related bugs.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
el19tb 29:2151cd327a36 1 #ifndef FROGGER_H
el19tb 29:2151cd327a36 2 #define FROGGER_H
el19tb 3:648c9d5001be 3
el19tb 2:86cef2afa648 4 #include "mbed.h"
el19tb 2:86cef2afa648 5 #include "N5110.h"
el19tb 2:86cef2afa648 6 #include "Gamepad.h"
el19tb 44:f02510eeb165 7
el19tb 29:2151cd327a36 8 #include "Frog.h"
el19tb 44:f02510eeb165 9 #include "Menu.h"
el19tb 44:f02510eeb165 10 #include "GraphicEngine.h"
el19tb 44:f02510eeb165 11 #include "WaterSprites.h"
el19tb 44:f02510eeb165 12 #include "Vehicle.h"
el19tb 44:f02510eeb165 13 #include "Background.h"
el19tb 13:cd6d2f999057 14
el19tb 4:aae7f8d4ab78 15 #include <vector>
el19tb 44:f02510eeb165 16 #include <stdio.h>
el19tb 44:f02510eeb165 17 #include <cstddef>
el19tb 44:f02510eeb165 18 #include <vector>
el19tb 2:86cef2afa648 19
el19tb 29:2151cd327a36 20 class Frogger
el19tb 29:2151cd327a36 21 {
el19tb 11:cc5861abfca5 22 public:
el19tb 29:2151cd327a36 23
el19tb 44:f02510eeb165 24 //GraphicEngine *graphics; // local renderer object
el19tb 44:f02510eeb165 25 Frog *frog; // one frog object
el19tb 44:f02510eeb165 26
el19tb 37:65c9e5a65738 27 int grid; // size of one game unit
el19tb 37:65c9e5a65738 28
el19tb 44:f02510eeb165 29 Frogger();
el19tb 44:f02510eeb165 30 Frogger(Frog *frog, int grid, int w, int h); // constructor
el19tb 37:65c9e5a65738 31
el19tb 37:65c9e5a65738 32 public:
el19tb 37:65c9e5a65738 33 int current_level;
el19tb 47:29c4796a49e5 34 int state_frog;
el19tb 48:8ccfc74b60a5 35 bool frogDie;
el19tb 48:8ccfc74b60a5 36 float water_level;
el19tb 44:f02510eeb165 37 bool frogOnLog; // attached
el19tb 29:2151cd327a36 38
el19tb 29:2151cd327a36 39 public:
el19tb 29:2151cd327a36 40
el19tb 42:04e326dcf09b 41 Gamepad gamepad; // actual hardware object
el19tb 43:2cd1cfe07770 42
el19tb 15:b15bf9357cd9 43 int row_number;
el19tb 18:6be4c3c94a3d 44 int grid_width; // screen width in grid units
el19tb 37:65c9e5a65738 45 int lcd_w;
el19tb 37:65c9e5a65738 46 int lcd_h;
el19tb 44:f02510eeb165 47
el19tb 44:f02510eeb165 48 public:
el19tb 44:f02510eeb165 49
el19tb 44:f02510eeb165 50 // Level One Car objects
el19tb 44:f02510eeb165 51 Object car_row_one_one[3];
el19tb 44:f02510eeb165 52 Object car_row_two_one[2];
el19tb 44:f02510eeb165 53 Object car_row_three_one[3];
el19tb 44:f02510eeb165 54 Object car_row_four_one[4];
el19tb 44:f02510eeb165 55
el19tb 44:f02510eeb165 56 // Level One Log objects
el19tb 44:f02510eeb165 57 Object row_one_log[3]; // large sized
el19tb 44:f02510eeb165 58 Object row_two_log[2]; // medium sized
el19tb 44:f02510eeb165 59 Object row_three_log[3]; // large sized
el19tb 44:f02510eeb165 60
el19tb 44:f02510eeb165 61 // Level two Car Objects
el19tb 44:f02510eeb165 62 Object car_row_one_two[4];
el19tb 44:f02510eeb165 63 Object car_row_two_two[3];
el19tb 44:f02510eeb165 64 Object car_row_three_two[4];
el19tb 44:f02510eeb165 65 Object car_row_four_two[3];
el19tb 44:f02510eeb165 66
el19tb 44:f02510eeb165 67 // level two log objects
el19tb 44:f02510eeb165 68 Object level_row_one[2];
el19tb 44:f02510eeb165 69 Object level_row_two[2];
el19tb 44:f02510eeb165 70 Object level_row_three[3];
el19tb 44:f02510eeb165 71
el19tb 44:f02510eeb165 72 public:
el19tb 44:f02510eeb165 73 void checkFrogOnWater();
el19tb 48:8ccfc74b60a5 74 void drownedFrog();
el19tb 46:e39abe665271 75 void checkFrogAction(Object log);
el19tb 44:f02510eeb165 76 void setupLevelTwoRows();
el19tb 48:8ccfc74b60a5 77 void moveFrogWithLog(Object log);
el19tb 44:f02510eeb165 78
el19tb 44:f02510eeb165 79 void levelOneCollision();
el19tb 44:f02510eeb165 80 void levelTwoCollision();
el19tb 46:e39abe665271 81 void checkCollison(Object object);
el19tb 44:f02510eeb165 82
el19tb 44:f02510eeb165 83 void setupRowDistance(Object *objects, int dis, int array_size);
el19tb 44:f02510eeb165 84 void setDistance(Object *object, int dis);
el19tb 44:f02510eeb165 85
el19tb 44:f02510eeb165 86 void setRowObjects(Object *objecs, int row, int array_size);
el19tb 44:f02510eeb165 87 void createRow(Object *object, int row);
el19tb 44:f02510eeb165 88
el19tb 44:f02510eeb165 89 void setSpriteObjects(Object *objects, char c, int array_size);
el19tb 44:f02510eeb165 90 void setSprite(Object *object, char c);
el19tb 44:f02510eeb165 91
el19tb 44:f02510eeb165 92 void setDirObjects(Object *objecs, int dir, int array_size);
el19tb 44:f02510eeb165 93 void setDir(Object *objecs, int dir);
el19tb 44:f02510eeb165 94
el19tb 44:f02510eeb165 95 //void moveLogLevelTwo();
el19tb 44:f02510eeb165 96
el19tb 44:f02510eeb165 97 void moveLogsLevelOne();
el19tb 48:8ccfc74b60a5 98 void checkFrogReachedRiver();
el19tb 44:f02510eeb165 99
el19tb 44:f02510eeb165 100 void moveLogsLevelTwo();
el19tb 47:29c4796a49e5 101 void drawFrogStates();
el19tb 44:f02510eeb165 102
el19tb 44:f02510eeb165 103 void speedSlow();
el19tb 44:f02510eeb165 104 void speedMedium();
el19tb 44:f02510eeb165 105 void speedFast();
el19tb 44:f02510eeb165 106
el19tb 44:f02510eeb165 107 // LEVEL ONE FUNCTIONS
el19tb 44:f02510eeb165 108 void setupLevelOne();
el19tb 44:f02510eeb165 109
el19tb 44:f02510eeb165 110 // set up vehicles
el19tb 44:f02510eeb165 111 void setupLevelOneRow();
el19tb 44:f02510eeb165 112 void setupLevelOneXPos();
el19tb 44:f02510eeb165 113 void setupLevelOneSprites();
el19tb 44:f02510eeb165 114 void setupLevelOneDir();
el19tb 44:f02510eeb165 115
el19tb 44:f02510eeb165 116 // set up logs
el19tb 44:f02510eeb165 117 void setupLogsLevelOne();
el19tb 44:f02510eeb165 118
el19tb 44:f02510eeb165 119 void setLogLevelOneXPos();
el19tb 44:f02510eeb165 120 void setLogLevelOneRow();
el19tb 44:f02510eeb165 121 void setLogLevelOneDir();
el19tb 44:f02510eeb165 122 void setLogLevelOneSprites();
el19tb 44:f02510eeb165 123
el19tb 44:f02510eeb165 124 // LEVEL TWO FUNCTIONS
el19tb 44:f02510eeb165 125 void setupLevelTwo();
el19tb 44:f02510eeb165 126 int randCars();
el19tb 44:f02510eeb165 127
el19tb 44:f02510eeb165 128 // setup vehicles
el19tb 44:f02510eeb165 129 void setupLevelTwoXPos();
el19tb 44:f02510eeb165 130 void setupLevelTwoSprites();
el19tb 44:f02510eeb165 131 void setupLevelTwoDir();
el19tb 44:f02510eeb165 132
el19tb 44:f02510eeb165 133 //log objects
el19tb 44:f02510eeb165 134 void setupLogLevelTwo();
el19tb 44:f02510eeb165 135
el19tb 44:f02510eeb165 136 void setLogLevelTwoXPos();
el19tb 44:f02510eeb165 137 void setLogLevelTwoRow();
el19tb 44:f02510eeb165 138 void setLogLevelTwoSprite();
el19tb 44:f02510eeb165 139 void setLogLevelTwoDir();
el19tb 44:f02510eeb165 140 void initializeLevelTwo();
el19tb 44:f02510eeb165 141
el19tb 44:f02510eeb165 142 void displayObject(Object &temp_object);
el19tb 11:cc5861abfca5 143
el19tb 2:86cef2afa648 144 public:
el19tb 44:f02510eeb165 145
el19tb 2:86cef2afa648 146 void start();
el19tb 2:86cef2afa648 147 void input();
el19tb 2:86cef2afa648 148 void process_input();
el19tb 2:86cef2afa648 149 void clear();
el19tb 44:f02510eeb165 150 void runLevelOne();
el19tb 44:f02510eeb165 151 void runLevelTwo();
el19tb 44:f02510eeb165 152 void moveVehiclesLevelOne();
el19tb 44:f02510eeb165 153 void moveVehiclesLevelTwo();
el19tb 44:f02510eeb165 154 void moveVehicle(Object *row, char c, int array_size);
el19tb 44:f02510eeb165 155 void moveIndividualObject(Object *vehicle, char c);
el19tb 44:f02510eeb165 156 void checkOutOfBounds(Object *vehicle);
el19tb 42:04e326dcf09b 157
el19tb 42:04e326dcf09b 158 void runCurrentLevel();
el19tb 42:04e326dcf09b 159 void initializeParams(int w, int h, int grid);
el19tb 42:04e326dcf09b 160 void initializeEmbeddedSystem();
el19tb 42:04e326dcf09b 161 void checkCurrentLevelCollision();
el19tb 42:04e326dcf09b 162 void checkIfFrogIsInWater();
el19tb 42:04e326dcf09b 163 void moveFrog(int xWay, int yWay);
el19tb 2:86cef2afa648 164 void game();
el19tb 2:86cef2afa648 165 void refresh();
el19tb 42:04e326dcf09b 166 void createWaterLane();
el19tb 42:04e326dcf09b 167 void createMultipleLanesWater();
el19tb 42:04e326dcf09b 168 void drawRoadObjects();
el19tb 42:04e326dcf09b 169 void createRoadLane();
el19tb 42:04e326dcf09b 170 void createMultipleRoadLane();
el19tb 42:04e326dcf09b 171 void drawSafety();
el19tb 42:04e326dcf09b 172 void createSafetyObject();
el19tb 42:04e326dcf09b 173 void createMultipleSafetyLane();
el19tb 42:04e326dcf09b 174
el19tb 42:04e326dcf09b 175 void drawEndPost();
el19tb 42:04e326dcf09b 176 void drawWater();
el19tb 42:04e326dcf09b 177 void loopWater();
el19tb 42:04e326dcf09b 178 void moveWater();
el19tb 3:648c9d5001be 179
el19tb 3:648c9d5001be 180
el19tb 3:648c9d5001be 181 void move();
el19tb 44:f02510eeb165 182 void checkFrogOutOfBounds();
el19tb 44:f02510eeb165 183
el19tb 3:648c9d5001be 184 void setup();
el19tb 42:04e326dcf09b 185 void createGoalPost();
el19tb 2:86cef2afa648 186 };
el19tb 2:86cef2afa648 187
el19tb 44:f02510eeb165 188 #endif
el19tb 2:86cef2afa648 189
el19tb 44:f02510eeb165 190
el19tb 44:f02510eeb165 191