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@50:9ffeb4a10c0a, 2020-05-25 (annotated)
- Committer:
- el19tb
- Date:
- Mon May 25 02:18:57 2020 +0000
- Revision:
- 50:9ffeb4a10c0a
- Parent:
- 48:8ccfc74b60a5
- Child:
- 51:4c1f49729d88
created tutorial page, main screen, level progression, structured code, adjusted end post
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 | 50:9ffeb4a10c0a | 14 | #include "IntroScreen.h" |
el19tb | 13:cd6d2f999057 | 15 | |
el19tb | 4:aae7f8d4ab78 | 16 | #include <vector> |
el19tb | 44:f02510eeb165 | 17 | #include <stdio.h> |
el19tb | 44:f02510eeb165 | 18 | #include <cstddef> |
el19tb | 44:f02510eeb165 | 19 | #include <vector> |
el19tb | 2:86cef2afa648 | 20 | |
el19tb | 29:2151cd327a36 | 21 | class Frogger |
el19tb | 29:2151cd327a36 | 22 | { |
el19tb | 11:cc5861abfca5 | 23 | public: |
el19tb | 29:2151cd327a36 | 24 | |
el19tb | 44:f02510eeb165 | 25 | //GraphicEngine *graphics; // local renderer object |
el19tb | 44:f02510eeb165 | 26 | Frog *frog; // one frog object |
el19tb | 44:f02510eeb165 | 27 | |
el19tb | 37:65c9e5a65738 | 28 | int grid; // size of one game unit |
el19tb | 50:9ffeb4a10c0a | 29 | IntroScreen intro; |
el19tb | 50:9ffeb4a10c0a | 30 | |
el19tb | 44:f02510eeb165 | 31 | Frogger(); |
el19tb | 44:f02510eeb165 | 32 | Frogger(Frog *frog, int grid, int w, int h); // constructor |
el19tb | 37:65c9e5a65738 | 33 | |
el19tb | 37:65c9e5a65738 | 34 | public: |
el19tb | 37:65c9e5a65738 | 35 | int current_level; |
el19tb | 47:29c4796a49e5 | 36 | int state_frog; |
el19tb | 48:8ccfc74b60a5 | 37 | bool frogDie; |
el19tb | 50:9ffeb4a10c0a | 38 | int goal_post_xpos; |
el19tb | 50:9ffeb4a10c0a | 39 | bool play_game; |
el19tb | 50:9ffeb4a10c0a | 40 | bool introScreen; |
el19tb | 50:9ffeb4a10c0a | 41 | bool tutorial; |
el19tb | 50:9ffeb4a10c0a | 42 | bool settings; |
el19tb | 50:9ffeb4a10c0a | 43 | void gotoNextTutorialSlide(); |
el19tb | 50:9ffeb4a10c0a | 44 | void displayTutorial(); |
el19tb | 50:9ffeb4a10c0a | 45 | void goalReached(); |
el19tb | 50:9ffeb4a10c0a | 46 | void checkProgression(); |
el19tb | 50:9ffeb4a10c0a | 47 | |
el19tb | 50:9ffeb4a10c0a | 48 | bool end_post; |
el19tb | 50:9ffeb4a10c0a | 49 | bool nextLevel; |
el19tb | 50:9ffeb4a10c0a | 50 | bool next_goal; |
el19tb | 50:9ffeb4a10c0a | 51 | |
el19tb | 48:8ccfc74b60a5 | 52 | float water_level; |
el19tb | 44:f02510eeb165 | 53 | bool frogOnLog; // attached |
el19tb | 29:2151cd327a36 | 54 | |
el19tb | 29:2151cd327a36 | 55 | public: |
el19tb | 29:2151cd327a36 | 56 | |
el19tb | 42:04e326dcf09b | 57 | Gamepad gamepad; // actual hardware object |
el19tb | 43:2cd1cfe07770 | 58 | |
el19tb | 15:b15bf9357cd9 | 59 | int row_number; |
el19tb | 18:6be4c3c94a3d | 60 | int grid_width; // screen width in grid units |
el19tb | 37:65c9e5a65738 | 61 | int lcd_w; |
el19tb | 37:65c9e5a65738 | 62 | int lcd_h; |
el19tb | 44:f02510eeb165 | 63 | |
el19tb | 44:f02510eeb165 | 64 | public: |
el19tb | 44:f02510eeb165 | 65 | |
el19tb | 44:f02510eeb165 | 66 | // Level One Car objects |
el19tb | 44:f02510eeb165 | 67 | Object car_row_one_one[3]; |
el19tb | 44:f02510eeb165 | 68 | Object car_row_two_one[2]; |
el19tb | 44:f02510eeb165 | 69 | Object car_row_three_one[3]; |
el19tb | 44:f02510eeb165 | 70 | Object car_row_four_one[4]; |
el19tb | 44:f02510eeb165 | 71 | |
el19tb | 44:f02510eeb165 | 72 | // Level One Log objects |
el19tb | 44:f02510eeb165 | 73 | Object row_one_log[3]; // large sized |
el19tb | 44:f02510eeb165 | 74 | Object row_two_log[2]; // medium sized |
el19tb | 44:f02510eeb165 | 75 | Object row_three_log[3]; // large sized |
el19tb | 44:f02510eeb165 | 76 | |
el19tb | 44:f02510eeb165 | 77 | // Level two Car Objects |
el19tb | 44:f02510eeb165 | 78 | Object car_row_one_two[4]; |
el19tb | 44:f02510eeb165 | 79 | Object car_row_two_two[3]; |
el19tb | 44:f02510eeb165 | 80 | Object car_row_three_two[4]; |
el19tb | 44:f02510eeb165 | 81 | Object car_row_four_two[3]; |
el19tb | 44:f02510eeb165 | 82 | |
el19tb | 44:f02510eeb165 | 83 | // level two log objects |
el19tb | 44:f02510eeb165 | 84 | Object level_row_one[2]; |
el19tb | 44:f02510eeb165 | 85 | Object level_row_two[2]; |
el19tb | 44:f02510eeb165 | 86 | Object level_row_three[3]; |
el19tb | 50:9ffeb4a10c0a | 87 | |
el19tb | 44:f02510eeb165 | 88 | public: |
el19tb | 50:9ffeb4a10c0a | 89 | void run(); |
el19tb | 50:9ffeb4a10c0a | 90 | void actOnFrogPos(); |
el19tb | 50:9ffeb4a10c0a | 91 | void home(); |
el19tb | 50:9ffeb4a10c0a | 92 | void determineSelection(); |
el19tb | 50:9ffeb4a10c0a | 93 | void gotoPage(); |
el19tb | 50:9ffeb4a10c0a | 94 | void selectOption(); |
el19tb | 50:9ffeb4a10c0a | 95 | void checkLevelProgression(); |
el19tb | 50:9ffeb4a10c0a | 96 | int randEndPost(); |
el19tb | 44:f02510eeb165 | 97 | void checkFrogOnWater(); |
el19tb | 48:8ccfc74b60a5 | 98 | void drownedFrog(); |
el19tb | 46:e39abe665271 | 99 | void checkFrogAction(Object log); |
el19tb | 44:f02510eeb165 | 100 | void setupLevelTwoRows(); |
el19tb | 48:8ccfc74b60a5 | 101 | void moveFrogWithLog(Object log); |
el19tb | 50:9ffeb4a10c0a | 102 | |
el19tb | 50:9ffeb4a10c0a | 103 | void drawBackGround(); |
el19tb | 50:9ffeb4a10c0a | 104 | void generateLevelOneGoalPost(); |
el19tb | 50:9ffeb4a10c0a | 105 | void setUpGoalPost(); |
el19tb | 50:9ffeb4a10c0a | 106 | |
el19tb | 44:f02510eeb165 | 107 | void levelOneCollision(); |
el19tb | 44:f02510eeb165 | 108 | void levelTwoCollision(); |
el19tb | 46:e39abe665271 | 109 | void checkCollison(Object object); |
el19tb | 44:f02510eeb165 | 110 | |
el19tb | 44:f02510eeb165 | 111 | void setupRowDistance(Object *objects, int dis, int array_size); |
el19tb | 44:f02510eeb165 | 112 | void setDistance(Object *object, int dis); |
el19tb | 44:f02510eeb165 | 113 | |
el19tb | 44:f02510eeb165 | 114 | void setRowObjects(Object *objecs, int row, int array_size); |
el19tb | 44:f02510eeb165 | 115 | void createRow(Object *object, int row); |
el19tb | 44:f02510eeb165 | 116 | |
el19tb | 44:f02510eeb165 | 117 | void setSpriteObjects(Object *objects, char c, int array_size); |
el19tb | 44:f02510eeb165 | 118 | void setSprite(Object *object, char c); |
el19tb | 44:f02510eeb165 | 119 | |
el19tb | 44:f02510eeb165 | 120 | void setDirObjects(Object *objecs, int dir, int array_size); |
el19tb | 44:f02510eeb165 | 121 | void setDir(Object *objecs, int dir); |
el19tb | 44:f02510eeb165 | 122 | |
el19tb | 44:f02510eeb165 | 123 | //void moveLogLevelTwo(); |
el19tb | 44:f02510eeb165 | 124 | |
el19tb | 44:f02510eeb165 | 125 | void moveLogsLevelOne(); |
el19tb | 48:8ccfc74b60a5 | 126 | void checkFrogReachedRiver(); |
el19tb | 44:f02510eeb165 | 127 | |
el19tb | 44:f02510eeb165 | 128 | void moveLogsLevelTwo(); |
el19tb | 47:29c4796a49e5 | 129 | void drawFrogStates(); |
el19tb | 44:f02510eeb165 | 130 | |
el19tb | 44:f02510eeb165 | 131 | void speedSlow(); |
el19tb | 44:f02510eeb165 | 132 | void speedMedium(); |
el19tb | 44:f02510eeb165 | 133 | void speedFast(); |
el19tb | 44:f02510eeb165 | 134 | |
el19tb | 44:f02510eeb165 | 135 | // LEVEL ONE FUNCTIONS |
el19tb | 44:f02510eeb165 | 136 | void setupLevelOne(); |
el19tb | 44:f02510eeb165 | 137 | |
el19tb | 44:f02510eeb165 | 138 | // set up vehicles |
el19tb | 44:f02510eeb165 | 139 | void setupLevelOneRow(); |
el19tb | 44:f02510eeb165 | 140 | void setupLevelOneXPos(); |
el19tb | 44:f02510eeb165 | 141 | void setupLevelOneSprites(); |
el19tb | 44:f02510eeb165 | 142 | void setupLevelOneDir(); |
el19tb | 44:f02510eeb165 | 143 | |
el19tb | 44:f02510eeb165 | 144 | // set up logs |
el19tb | 44:f02510eeb165 | 145 | void setupLogsLevelOne(); |
el19tb | 44:f02510eeb165 | 146 | |
el19tb | 44:f02510eeb165 | 147 | void setLogLevelOneXPos(); |
el19tb | 44:f02510eeb165 | 148 | void setLogLevelOneRow(); |
el19tb | 44:f02510eeb165 | 149 | void setLogLevelOneDir(); |
el19tb | 44:f02510eeb165 | 150 | void setLogLevelOneSprites(); |
el19tb | 44:f02510eeb165 | 151 | |
el19tb | 44:f02510eeb165 | 152 | // LEVEL TWO FUNCTIONS |
el19tb | 44:f02510eeb165 | 153 | void setupLevelTwo(); |
el19tb | 44:f02510eeb165 | 154 | int randCars(); |
el19tb | 44:f02510eeb165 | 155 | |
el19tb | 44:f02510eeb165 | 156 | // setup vehicles |
el19tb | 44:f02510eeb165 | 157 | void setupLevelTwoXPos(); |
el19tb | 44:f02510eeb165 | 158 | void setupLevelTwoSprites(); |
el19tb | 44:f02510eeb165 | 159 | void setupLevelTwoDir(); |
el19tb | 44:f02510eeb165 | 160 | |
el19tb | 44:f02510eeb165 | 161 | //log objects |
el19tb | 44:f02510eeb165 | 162 | void setupLogLevelTwo(); |
el19tb | 44:f02510eeb165 | 163 | |
el19tb | 44:f02510eeb165 | 164 | void setLogLevelTwoXPos(); |
el19tb | 44:f02510eeb165 | 165 | void setLogLevelTwoRow(); |
el19tb | 44:f02510eeb165 | 166 | void setLogLevelTwoSprite(); |
el19tb | 44:f02510eeb165 | 167 | void setLogLevelTwoDir(); |
el19tb | 44:f02510eeb165 | 168 | void initializeLevelTwo(); |
el19tb | 44:f02510eeb165 | 169 | |
el19tb | 44:f02510eeb165 | 170 | void displayObject(Object &temp_object); |
el19tb | 11:cc5861abfca5 | 171 | |
el19tb | 2:86cef2afa648 | 172 | public: |
el19tb | 44:f02510eeb165 | 173 | |
el19tb | 2:86cef2afa648 | 174 | void start(); |
el19tb | 2:86cef2afa648 | 175 | void input(); |
el19tb | 2:86cef2afa648 | 176 | void process_input(); |
el19tb | 2:86cef2afa648 | 177 | void clear(); |
el19tb | 44:f02510eeb165 | 178 | void runLevelOne(); |
el19tb | 44:f02510eeb165 | 179 | void runLevelTwo(); |
el19tb | 44:f02510eeb165 | 180 | void moveVehiclesLevelOne(); |
el19tb | 44:f02510eeb165 | 181 | void moveVehiclesLevelTwo(); |
el19tb | 44:f02510eeb165 | 182 | void moveVehicle(Object *row, char c, int array_size); |
el19tb | 44:f02510eeb165 | 183 | void moveIndividualObject(Object *vehicle, char c); |
el19tb | 44:f02510eeb165 | 184 | void checkOutOfBounds(Object *vehicle); |
el19tb | 50:9ffeb4a10c0a | 185 | void displayLevelIntro(); |
el19tb | 42:04e326dcf09b | 186 | void runCurrentLevel(); |
el19tb | 42:04e326dcf09b | 187 | void initializeParams(int w, int h, int grid); |
el19tb | 42:04e326dcf09b | 188 | void initializeEmbeddedSystem(); |
el19tb | 42:04e326dcf09b | 189 | void checkCurrentLevelCollision(); |
el19tb | 42:04e326dcf09b | 190 | void checkIfFrogIsInWater(); |
el19tb | 42:04e326dcf09b | 191 | void moveFrog(int xWay, int yWay); |
el19tb | 2:86cef2afa648 | 192 | void game(); |
el19tb | 2:86cef2afa648 | 193 | void refresh(); |
el19tb | 42:04e326dcf09b | 194 | void createWaterLane(); |
el19tb | 42:04e326dcf09b | 195 | void createMultipleLanesWater(); |
el19tb | 42:04e326dcf09b | 196 | void drawRoadObjects(); |
el19tb | 42:04e326dcf09b | 197 | void createRoadLane(); |
el19tb | 42:04e326dcf09b | 198 | void createMultipleRoadLane(); |
el19tb | 42:04e326dcf09b | 199 | void drawSafety(); |
el19tb | 42:04e326dcf09b | 200 | void createSafetyObject(); |
el19tb | 42:04e326dcf09b | 201 | void createMultipleSafetyLane(); |
el19tb | 42:04e326dcf09b | 202 | |
el19tb | 42:04e326dcf09b | 203 | void drawEndPost(); |
el19tb | 42:04e326dcf09b | 204 | void drawWater(); |
el19tb | 42:04e326dcf09b | 205 | void loopWater(); |
el19tb | 42:04e326dcf09b | 206 | void moveWater(); |
el19tb | 3:648c9d5001be | 207 | |
el19tb | 3:648c9d5001be | 208 | |
el19tb | 3:648c9d5001be | 209 | void move(); |
el19tb | 44:f02510eeb165 | 210 | void checkFrogOutOfBounds(); |
el19tb | 44:f02510eeb165 | 211 | |
el19tb | 3:648c9d5001be | 212 | void setup(); |
el19tb | 42:04e326dcf09b | 213 | void createGoalPost(); |
el19tb | 2:86cef2afa648 | 214 | }; |
el19tb | 2:86cef2afa648 | 215 | |
el19tb | 44:f02510eeb165 | 216 | #endif |
el19tb | 2:86cef2afa648 | 217 | |
el19tb | 44:f02510eeb165 | 218 | |
el19tb | 44:f02510eeb165 | 219 | |
el19tb | 50:9ffeb4a10c0a | 220 |