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@44:f02510eeb165, 2020-05-22 (annotated)
- Committer:
- el19tb
- Date:
- Fri May 22 06:37:50 2020 +0000
- Revision:
- 44:f02510eeb165
- Parent:
- 43:2cd1cfe07770
- Child:
- 46:e39abe665271
fixed major bugs, restructured the code
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 | 44:f02510eeb165 | 34 | bool frogWater; |
el19tb | 44:f02510eeb165 | 35 | bool frogOnLog; // attached |
el19tb | 29:2151cd327a36 | 36 | |
el19tb | 29:2151cd327a36 | 37 | public: |
el19tb | 29:2151cd327a36 | 38 | |
el19tb | 42:04e326dcf09b | 39 | Gamepad gamepad; // actual hardware object |
el19tb | 43:2cd1cfe07770 | 40 | |
el19tb | 15:b15bf9357cd9 | 41 | int row_number; |
el19tb | 18:6be4c3c94a3d | 42 | int grid_width; // screen width in grid units |
el19tb | 37:65c9e5a65738 | 43 | int lcd_w; |
el19tb | 37:65c9e5a65738 | 44 | int lcd_h; |
el19tb | 44:f02510eeb165 | 45 | |
el19tb | 44:f02510eeb165 | 46 | public: |
el19tb | 44:f02510eeb165 | 47 | |
el19tb | 44:f02510eeb165 | 48 | // Level One Car objects |
el19tb | 44:f02510eeb165 | 49 | Object car_row_one_one[3]; |
el19tb | 44:f02510eeb165 | 50 | Object car_row_two_one[2]; |
el19tb | 44:f02510eeb165 | 51 | Object car_row_three_one[3]; |
el19tb | 44:f02510eeb165 | 52 | Object car_row_four_one[4]; |
el19tb | 44:f02510eeb165 | 53 | |
el19tb | 44:f02510eeb165 | 54 | // Level One Log objects |
el19tb | 44:f02510eeb165 | 55 | Object row_one_log[3]; // large sized |
el19tb | 44:f02510eeb165 | 56 | Object row_two_log[2]; // medium sized |
el19tb | 44:f02510eeb165 | 57 | Object row_three_log[3]; // large sized |
el19tb | 44:f02510eeb165 | 58 | |
el19tb | 44:f02510eeb165 | 59 | // Level two Car Objects |
el19tb | 44:f02510eeb165 | 60 | Object car_row_one_two[4]; |
el19tb | 44:f02510eeb165 | 61 | Object car_row_two_two[3]; |
el19tb | 44:f02510eeb165 | 62 | Object car_row_three_two[4]; |
el19tb | 44:f02510eeb165 | 63 | Object car_row_four_two[3]; |
el19tb | 44:f02510eeb165 | 64 | |
el19tb | 44:f02510eeb165 | 65 | // level two log objects |
el19tb | 44:f02510eeb165 | 66 | Object level_row_one[2]; |
el19tb | 44:f02510eeb165 | 67 | Object level_row_two[2]; |
el19tb | 44:f02510eeb165 | 68 | Object level_row_three[3]; |
el19tb | 44:f02510eeb165 | 69 | |
el19tb | 44:f02510eeb165 | 70 | public: |
el19tb | 44:f02510eeb165 | 71 | void checkFrogOnWater(); |
el19tb | 44:f02510eeb165 | 72 | void checkFrogAction(Object *log); |
el19tb | 44:f02510eeb165 | 73 | void setupLevelTwoRows(); |
el19tb | 44:f02510eeb165 | 74 | void moveFrogWithLog(Object *log); |
el19tb | 44:f02510eeb165 | 75 | |
el19tb | 44:f02510eeb165 | 76 | void levelOneCollision(); |
el19tb | 44:f02510eeb165 | 77 | void levelTwoCollision(); |
el19tb | 44:f02510eeb165 | 78 | void checkCollison(Object *object); |
el19tb | 44:f02510eeb165 | 79 | |
el19tb | 44:f02510eeb165 | 80 | void setupRowDistance(Object *objects, int dis, int array_size); |
el19tb | 44:f02510eeb165 | 81 | void setDistance(Object *object, int dis); |
el19tb | 44:f02510eeb165 | 82 | |
el19tb | 44:f02510eeb165 | 83 | void setRowObjects(Object *objecs, int row, int array_size); |
el19tb | 44:f02510eeb165 | 84 | void createRow(Object *object, int row); |
el19tb | 44:f02510eeb165 | 85 | |
el19tb | 44:f02510eeb165 | 86 | void setSpriteObjects(Object *objects, char c, int array_size); |
el19tb | 44:f02510eeb165 | 87 | void setSprite(Object *object, char c); |
el19tb | 44:f02510eeb165 | 88 | |
el19tb | 44:f02510eeb165 | 89 | void setDirObjects(Object *objecs, int dir, int array_size); |
el19tb | 44:f02510eeb165 | 90 | void setDir(Object *objecs, int dir); |
el19tb | 44:f02510eeb165 | 91 | |
el19tb | 44:f02510eeb165 | 92 | //void moveLogLevelTwo(); |
el19tb | 44:f02510eeb165 | 93 | |
el19tb | 44:f02510eeb165 | 94 | void moveLogsLevelOne(); |
el19tb | 44:f02510eeb165 | 95 | |
el19tb | 44:f02510eeb165 | 96 | void moveLogsLevelTwo(); |
el19tb | 44:f02510eeb165 | 97 | |
el19tb | 44:f02510eeb165 | 98 | |
el19tb | 44:f02510eeb165 | 99 | void speedSlow(); |
el19tb | 44:f02510eeb165 | 100 | void speedMedium(); |
el19tb | 44:f02510eeb165 | 101 | void speedFast(); |
el19tb | 44:f02510eeb165 | 102 | |
el19tb | 44:f02510eeb165 | 103 | // LEVEL ONE FUNCTIONS |
el19tb | 44:f02510eeb165 | 104 | void setupLevelOne(); |
el19tb | 44:f02510eeb165 | 105 | |
el19tb | 44:f02510eeb165 | 106 | // set up vehicles |
el19tb | 44:f02510eeb165 | 107 | void setupLevelOneRow(); |
el19tb | 44:f02510eeb165 | 108 | void setupLevelOneXPos(); |
el19tb | 44:f02510eeb165 | 109 | void setupLevelOneSprites(); |
el19tb | 44:f02510eeb165 | 110 | void setupLevelOneDir(); |
el19tb | 44:f02510eeb165 | 111 | |
el19tb | 44:f02510eeb165 | 112 | // set up logs |
el19tb | 44:f02510eeb165 | 113 | void setupLogsLevelOne(); |
el19tb | 44:f02510eeb165 | 114 | |
el19tb | 44:f02510eeb165 | 115 | void setLogLevelOneXPos(); |
el19tb | 44:f02510eeb165 | 116 | void setLogLevelOneRow(); |
el19tb | 44:f02510eeb165 | 117 | void setLogLevelOneDir(); |
el19tb | 44:f02510eeb165 | 118 | void setLogLevelOneSprites(); |
el19tb | 44:f02510eeb165 | 119 | |
el19tb | 44:f02510eeb165 | 120 | // LEVEL TWO FUNCTIONS |
el19tb | 44:f02510eeb165 | 121 | void setupLevelTwo(); |
el19tb | 44:f02510eeb165 | 122 | int randCars(); |
el19tb | 44:f02510eeb165 | 123 | |
el19tb | 44:f02510eeb165 | 124 | // setup vehicles |
el19tb | 44:f02510eeb165 | 125 | void setupLevelTwoXPos(); |
el19tb | 44:f02510eeb165 | 126 | void setupLevelTwoSprites(); |
el19tb | 44:f02510eeb165 | 127 | void setupLevelTwoDir(); |
el19tb | 44:f02510eeb165 | 128 | |
el19tb | 44:f02510eeb165 | 129 | //log objects |
el19tb | 44:f02510eeb165 | 130 | void setupLogLevelTwo(); |
el19tb | 44:f02510eeb165 | 131 | |
el19tb | 44:f02510eeb165 | 132 | void setLogLevelTwoXPos(); |
el19tb | 44:f02510eeb165 | 133 | void setLogLevelTwoRow(); |
el19tb | 44:f02510eeb165 | 134 | void setLogLevelTwoSprite(); |
el19tb | 44:f02510eeb165 | 135 | void setLogLevelTwoDir(); |
el19tb | 44:f02510eeb165 | 136 | void initializeLevelTwo(); |
el19tb | 44:f02510eeb165 | 137 | |
el19tb | 44:f02510eeb165 | 138 | void displayObject(Object &temp_object); |
el19tb | 11:cc5861abfca5 | 139 | |
el19tb | 2:86cef2afa648 | 140 | public: |
el19tb | 44:f02510eeb165 | 141 | |
el19tb | 2:86cef2afa648 | 142 | void start(); |
el19tb | 2:86cef2afa648 | 143 | void input(); |
el19tb | 2:86cef2afa648 | 144 | void process_input(); |
el19tb | 2:86cef2afa648 | 145 | void clear(); |
el19tb | 44:f02510eeb165 | 146 | void runLevelOne(); |
el19tb | 44:f02510eeb165 | 147 | void runLevelTwo(); |
el19tb | 44:f02510eeb165 | 148 | void moveVehiclesLevelOne(); |
el19tb | 44:f02510eeb165 | 149 | void moveVehiclesLevelTwo(); |
el19tb | 44:f02510eeb165 | 150 | void moveVehicle(Object *row, char c, int array_size); |
el19tb | 44:f02510eeb165 | 151 | void moveIndividualObject(Object *vehicle, char c); |
el19tb | 44:f02510eeb165 | 152 | void checkOutOfBounds(Object *vehicle); |
el19tb | 42:04e326dcf09b | 153 | |
el19tb | 42:04e326dcf09b | 154 | void runCurrentLevel(); |
el19tb | 42:04e326dcf09b | 155 | void initializeParams(int w, int h, int grid); |
el19tb | 42:04e326dcf09b | 156 | void initializeEmbeddedSystem(); |
el19tb | 42:04e326dcf09b | 157 | void checkCurrentLevelCollision(); |
el19tb | 42:04e326dcf09b | 158 | void checkIfFrogIsInWater(); |
el19tb | 42:04e326dcf09b | 159 | void moveFrog(int xWay, int yWay); |
el19tb | 2:86cef2afa648 | 160 | void game(); |
el19tb | 2:86cef2afa648 | 161 | void refresh(); |
el19tb | 42:04e326dcf09b | 162 | void createWaterLane(); |
el19tb | 42:04e326dcf09b | 163 | void createMultipleLanesWater(); |
el19tb | 42:04e326dcf09b | 164 | void drawRoadObjects(); |
el19tb | 42:04e326dcf09b | 165 | void createRoadLane(); |
el19tb | 42:04e326dcf09b | 166 | void createMultipleRoadLane(); |
el19tb | 42:04e326dcf09b | 167 | void drawSafety(); |
el19tb | 42:04e326dcf09b | 168 | void createSafetyObject(); |
el19tb | 42:04e326dcf09b | 169 | void createMultipleSafetyLane(); |
el19tb | 42:04e326dcf09b | 170 | |
el19tb | 42:04e326dcf09b | 171 | void drawEndPost(); |
el19tb | 42:04e326dcf09b | 172 | void drawWater(); |
el19tb | 42:04e326dcf09b | 173 | void loopWater(); |
el19tb | 42:04e326dcf09b | 174 | void moveWater(); |
el19tb | 3:648c9d5001be | 175 | |
el19tb | 3:648c9d5001be | 176 | |
el19tb | 3:648c9d5001be | 177 | void move(); |
el19tb | 44:f02510eeb165 | 178 | void checkFrogOutOfBounds(); |
el19tb | 44:f02510eeb165 | 179 | |
el19tb | 3:648c9d5001be | 180 | void setup(); |
el19tb | 42:04e326dcf09b | 181 | void createGoalPost(); |
el19tb | 2:86cef2afa648 | 182 | }; |
el19tb | 2:86cef2afa648 | 183 | |
el19tb | 44:f02510eeb165 | 184 | #endif |
el19tb | 2:86cef2afa648 | 185 | |
el19tb | 44:f02510eeb165 | 186 | |
el19tb | 44:f02510eeb165 | 187 |