Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Frogger/Frogger.h@48:8ccfc74b60a5, 2020-05-23 (annotated)
- 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?
User | Revision | Line number | New 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 |