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 N5110 ShiftReg PinDetect
Game.h@14:b4fed570abaf, 2015-05-09 (annotated)
- Committer:
- Siriagus
- Date:
- Sat May 09 14:39:48 2015 +0000
- Revision:
- 14:b4fed570abaf
- Parent:
- 13:7ab71c7c311b
- Child:
- 15:d5eb13c4c1c6
Added function for generating random seed from two unconnected AnalogIn pins.
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| Siriagus | 5:100d960fc6d5 | 1 | #ifndef GAME_H |
| Siriagus | 5:100d960fc6d5 | 2 | #define GAME_H |
| Siriagus | 5:100d960fc6d5 | 3 | |
| Siriagus | 12:8178fad5e660 | 4 | /** @file Game.h |
| Siriagus | 12:8178fad5e660 | 5 | * @author Andreas Garmannslund |
| Siriagus | 12:8178fad5e660 | 6 | */ |
| Siriagus | 12:8178fad5e660 | 7 | |
| Siriagus | 7:678873947b29 | 8 | #include "State.h" |
| Siriagus | 8:9ac6a428fa26 | 9 | #include "Resources.h" // TODO: Move to State.h ? |
| Siriagus | 9:da608ae65df9 | 10 | #include "Entity.h" |
| Siriagus | 11:adb68da98262 | 11 | #include "map.h" |
| Siriagus | 8:9ac6a428fa26 | 12 | #include <vector> |
| Siriagus | 8:9ac6a428fa26 | 13 | |
| Siriagus | 14:b4fed570abaf | 14 | #define TERMINAL_VELOCITY 3 |
| Siriagus | 14:b4fed570abaf | 15 | |
| Siriagus | 12:8178fad5e660 | 16 | /// Simple objects with a position (x,y) and velocity (vx, vy) |
| Siriagus | 8:9ac6a428fa26 | 17 | struct Point |
| Siriagus | 8:9ac6a428fa26 | 18 | { |
| Siriagus | 8:9ac6a428fa26 | 19 | int x; |
| Siriagus | 8:9ac6a428fa26 | 20 | int y; |
| Siriagus | 9:da608ae65df9 | 21 | int vx, vy; |
| Siriagus | 8:9ac6a428fa26 | 22 | }; |
| Siriagus | 7:678873947b29 | 23 | |
| Siriagus | 12:8178fad5e660 | 24 | /// State: Game |
| Siriagus | 5:100d960fc6d5 | 25 | class Game : public State |
| Siriagus | 5:100d960fc6d5 | 26 | { |
| Siriagus | 5:100d960fc6d5 | 27 | public: |
| Siriagus | 12:8178fad5e660 | 28 | /// Creates the Game state |
| Siriagus | 5:100d960fc6d5 | 29 | Game(StateManager* fsm, N5110 *lcd, InputManager* input) |
| Siriagus | 9:da608ae65df9 | 30 | : State(fsm, lcd, input) {init();} |
| Siriagus | 12:8178fad5e660 | 31 | |
| Siriagus | 12:8178fad5e660 | 32 | /// Handle input and update logic |
| Siriagus | 7:678873947b29 | 33 | virtual void update(float dt); |
| Siriagus | 12:8178fad5e660 | 34 | |
| Siriagus | 12:8178fad5e660 | 35 | /// Draw state to lcd |
| Siriagus | 7:678873947b29 | 36 | virtual void render(); |
| Siriagus | 8:9ac6a428fa26 | 37 | |
| Siriagus | 8:9ac6a428fa26 | 38 | |
| Siriagus | 5:100d960fc6d5 | 39 | private: |
| Siriagus | 13:7ab71c7c311b | 40 | /// Moves entity in map. If collision occurs, entity can not move further |
| Siriagus | 13:7ab71c7c311b | 41 | void moveWithCollisionTest(Entity* entity, const int map[HEIGHT][WIDTH]); |
| Siriagus | 13:7ab71c7c311b | 42 | |
| Siriagus | 12:8178fad5e660 | 43 | void init(); /// Sets some initial values |
| Siriagus | 12:8178fad5e660 | 44 | Entity player; /// Player object |
| Siriagus | 13:7ab71c7c311b | 45 | Entity enemy; /// Enemy object |
| Siriagus | 8:9ac6a428fa26 | 46 | |
| Siriagus | 12:8178fad5e660 | 47 | bool releasedBtnB; /// True if button B has been released after being pressed down |
| Siriagus | 12:8178fad5e660 | 48 | |
| Siriagus | 12:8178fad5e660 | 49 | std::vector<Point*> bullets; /// Container for bullets |
| Siriagus | 5:100d960fc6d5 | 50 | }; |
| Siriagus | 5:100d960fc6d5 | 51 | |
| Siriagus | 5:100d960fc6d5 | 52 | #endif |