![](/media/cache/profiles/301b144af4d1614dbcf92f9710be50fb.jpg.50x50_q85.jpg)
Race around the city collecting the flags while avoiding those that stand in the way of your mission. Make no mistake you will need to be quick to outwit your opponents, they are smart and will try to box you in. I wrote this game to prove that writing a game with scrolling scenery is possible even with the limited 6kB of RAM available. I had to compromise sound effects for features, I wanted multiple opponents, I wanted to be able to drop smoke bombs to trap the opponents but all this required memory so the sound effects had to take a back seat.
GameEngine/GameObject.h@1:1b8125937f28, 2015-02-01 (annotated)
- Committer:
- taylorza
- Date:
- Sun Feb 01 00:43:25 2015 +0000
- Revision:
- 1:1b8125937f28
- Parent:
- 0:d85c449aca6d
Minor updates
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
taylorza | 0:d85c449aca6d | 1 | #include "Point.h" |
taylorza | 0:d85c449aca6d | 2 | #include "Rect.h" |
taylorza | 0:d85c449aca6d | 3 | |
taylorza | 0:d85c449aca6d | 4 | #ifndef __GAMEOBJECT_H__ |
taylorza | 0:d85c449aca6d | 5 | #define __GAMEOBJECT_H__ |
taylorza | 0:d85c449aca6d | 6 | |
taylorza | 0:d85c449aca6d | 7 | class TileViewer; |
taylorza | 0:d85c449aca6d | 8 | |
taylorza | 0:d85c449aca6d | 9 | class GameObject |
taylorza | 0:d85c449aca6d | 10 | { |
taylorza | 0:d85c449aca6d | 11 | public: |
taylorza | 0:d85c449aca6d | 12 | GameObject(); |
taylorza | 0:d85c449aca6d | 13 | |
taylorza | 0:d85c449aca6d | 14 | public: |
taylorza | 1:1b8125937f28 | 15 | void setPosition(const Point &position); |
taylorza | 0:d85c449aca6d | 16 | void setSpriteId(uint8_t spriteId); |
taylorza | 0:d85c449aca6d | 17 | void setSpeed(uint8_t speed); |
taylorza | 0:d85c449aca6d | 18 | void setCollisionRect(uint8_t x, uint8_t y, uint8_t w, uint8_t h); |
taylorza | 0:d85c449aca6d | 19 | void animate(); |
taylorza | 0:d85c449aca6d | 20 | virtual void update(); |
taylorza | 0:d85c449aca6d | 21 | virtual void draw(); |
taylorza | 0:d85c449aca6d | 22 | |
taylorza | 0:d85c449aca6d | 23 | //protected: |
taylorza | 0:d85c449aca6d | 24 | public: |
taylorza | 0:d85c449aca6d | 25 | bool moveLeft(); |
taylorza | 0:d85c449aca6d | 26 | bool moveRight(); |
taylorza | 0:d85c449aca6d | 27 | bool moveUp(); |
taylorza | 0:d85c449aca6d | 28 | bool moveDown(); |
taylorza | 0:d85c449aca6d | 29 | |
taylorza | 0:d85c449aca6d | 30 | inline bool canGoLeft() { return canGoLeft(_position.X, _position.Y); } |
taylorza | 0:d85c449aca6d | 31 | inline bool canGoRight(){ return canGoRight(_position.X, _position.Y); }; |
taylorza | 0:d85c449aca6d | 32 | inline bool canGoUp() { return canGoUp(_position.X, _position.Y); }; |
taylorza | 0:d85c449aca6d | 33 | inline bool canGoDown() { return canGoDown(_position.X, _position.Y); }; |
taylorza | 0:d85c449aca6d | 34 | |
taylorza | 0:d85c449aca6d | 35 | const GameObject* detectCollision(); |
taylorza | 0:d85c449aca6d | 36 | bool detectCollision(GameObject* other); |
taylorza | 0:d85c449aca6d | 37 | const Block* detectBlock(); |
taylorza | 0:d85c449aca6d | 38 | Rect getCollisionRect(); |
taylorza | 0:d85c449aca6d | 39 | |
taylorza | 0:d85c449aca6d | 40 | bool pickupObject(); |
taylorza | 0:d85c449aca6d | 41 | |
taylorza | 0:d85c449aca6d | 42 | inline Point& getPosition() {return _position;} |
taylorza | 0:d85c449aca6d | 43 | |
taylorza | 0:d85c449aca6d | 44 | void setParent(TileViewer *pParent) { _pParent = pParent; } |
taylorza | 0:d85c449aca6d | 45 | TileViewer* getParent() { return _pParent; } |
taylorza | 0:d85c449aca6d | 46 | |
taylorza | 0:d85c449aca6d | 47 | private: |
taylorza | 0:d85c449aca6d | 48 | bool canGoLeft(uint16_t x, uint16_t y); |
taylorza | 0:d85c449aca6d | 49 | bool canGoRight(uint16_t x, uint16_t y); |
taylorza | 0:d85c449aca6d | 50 | bool canGoUp(uint16_t x, uint16_t y); |
taylorza | 0:d85c449aca6d | 51 | bool canGoDown(uint16_t x, uint16_t y); |
taylorza | 0:d85c449aca6d | 52 | |
taylorza | 0:d85c449aca6d | 53 | private: |
taylorza | 0:d85c449aca6d | 54 | uint8_t _spriteId; |
taylorza | 0:d85c449aca6d | 55 | Point _position; |
taylorza | 0:d85c449aca6d | 56 | uint8_t _speed; |
taylorza | 0:d85c449aca6d | 57 | uint8_t _animationCounter; |
taylorza | 0:d85c449aca6d | 58 | Rect _collisionRect; |
taylorza | 0:d85c449aca6d | 59 | |
taylorza | 0:d85c449aca6d | 60 | TileViewer *_pParent; |
taylorza | 0:d85c449aca6d | 61 | |
taylorza | 0:d85c449aca6d | 62 | friend class TileViewer; |
taylorza | 0:d85c449aca6d | 63 | }; |
taylorza | 0:d85c449aca6d | 64 | |
taylorza | 0:d85c449aca6d | 65 | #endif //__GAMEOBJECT_H__ |