Platform game written for the GHI/OutrageousCircuits RETRO game device. Navigate the caves collecting all the pickups and avoiding the creatures and haunted mine carts that patrol the caves. Oh and remember to watch out for the poisonous plants... This game demonstrates the ability to have multiple animated sprites where the sprites can overlap the background environment. See how the player moves past the fence and climbs the wall in the 3rd screen.
RetroGameEngine/GameObject.h@14:b4884a31069e, 2015-02-16 (annotated)
- Committer:
- taylorza
- Date:
- Mon Feb 16 02:35:14 2015 +0000
- Revision:
- 14:b4884a31069e
- Parent:
- 9:34008d8b1cdf
Cleaned up some warnings and fixed memory issue related to incremental builds
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
taylorza | 9:34008d8b1cdf | 1 | #ifndef __GAMEOBJECT_H__ |
taylorza | 9:34008d8b1cdf | 2 | #define __GAMEOBJECT_H__ |
taylorza | 9:34008d8b1cdf | 3 | |
taylorza | 9:34008d8b1cdf | 4 | class Scene; |
taylorza | 9:34008d8b1cdf | 5 | class GameObject |
taylorza | 9:34008d8b1cdf | 6 | { |
taylorza | 9:34008d8b1cdf | 7 | public: |
taylorza | 9:34008d8b1cdf | 8 | GameObject(); |
taylorza | 9:34008d8b1cdf | 9 | |
taylorza | 9:34008d8b1cdf | 10 | public: |
taylorza | 14:b4884a31069e | 11 | void setStartPosition(uint8_t x, uint8_t y); |
taylorza | 9:34008d8b1cdf | 12 | void setSpriteId(uint8_t spriteId); |
taylorza | 9:34008d8b1cdf | 13 | void setSpeed(uint8_t speed); |
taylorza | 9:34008d8b1cdf | 14 | void setCollisionRect(uint8_t x, uint8_t y, uint8_t w, uint8_t h); |
taylorza | 9:34008d8b1cdf | 15 | void animate(); |
taylorza | 9:34008d8b1cdf | 16 | virtual void update(); |
taylorza | 9:34008d8b1cdf | 17 | virtual void draw(); |
taylorza | 9:34008d8b1cdf | 18 | |
taylorza | 9:34008d8b1cdf | 19 | protected: |
taylorza | 9:34008d8b1cdf | 20 | bool moveLeft(); |
taylorza | 9:34008d8b1cdf | 21 | bool moveRight(); |
taylorza | 9:34008d8b1cdf | 22 | bool moveUp(); |
taylorza | 9:34008d8b1cdf | 23 | bool moveDown(); |
taylorza | 9:34008d8b1cdf | 24 | bool fall(); |
taylorza | 9:34008d8b1cdf | 25 | |
taylorza | 9:34008d8b1cdf | 26 | const GameObject* detectCollision(); |
taylorza | 9:34008d8b1cdf | 27 | const Block* detectBlock(); |
taylorza | 9:34008d8b1cdf | 28 | Rect getCollisionRect(); |
taylorza | 9:34008d8b1cdf | 29 | |
taylorza | 9:34008d8b1cdf | 30 | bool pickupObject(); |
taylorza | 9:34008d8b1cdf | 31 | |
taylorza | 9:34008d8b1cdf | 32 | bool canGoLeft(uint8_t x, uint8_t y); |
taylorza | 9:34008d8b1cdf | 33 | bool canGoRight(uint8_t x, uint8_t y); |
taylorza | 9:34008d8b1cdf | 34 | bool canGoUp(uint8_t x, uint8_t y); |
taylorza | 9:34008d8b1cdf | 35 | bool canGoDown(uint8_t x, uint8_t y, uint8_t collitionBorder); |
taylorza | 9:34008d8b1cdf | 36 | |
taylorza | 9:34008d8b1cdf | 37 | bool isOpenBelow(); |
taylorza | 9:34008d8b1cdf | 38 | bool isOpenBelow(int8_t dx); |
taylorza | 9:34008d8b1cdf | 39 | bool isOverLadder(); |
taylorza | 9:34008d8b1cdf | 40 | bool isLadderAbove(); |
taylorza | 9:34008d8b1cdf | 41 | bool isLadderBelow(); |
taylorza | 9:34008d8b1cdf | 42 | bool isLadderLeft(); |
taylorza | 9:34008d8b1cdf | 43 | bool isLadderRight(); |
taylorza | 9:34008d8b1cdf | 44 | const Block& getBlockAbove(); |
taylorza | 9:34008d8b1cdf | 45 | const Block& getBlockBelow(); |
taylorza | 9:34008d8b1cdf | 46 | |
taylorza | 9:34008d8b1cdf | 47 | inline Point& getPosition() {return _position;} |
taylorza | 9:34008d8b1cdf | 48 | inline int8_t getLastXDirection() { return _lastdx; } |
taylorza | 9:34008d8b1cdf | 49 | |
taylorza | 9:34008d8b1cdf | 50 | void setScene(Scene *pScene) { _pScene = pScene; } |
taylorza | 9:34008d8b1cdf | 51 | Scene* getScene() { return _pScene; } |
taylorza | 9:34008d8b1cdf | 52 | private: |
taylorza | 9:34008d8b1cdf | 53 | uint8_t _spriteId; |
taylorza | 9:34008d8b1cdf | 54 | Point _position; |
taylorza | 9:34008d8b1cdf | 55 | int8_t _dx; |
taylorza | 9:34008d8b1cdf | 56 | int8_t _dy; |
taylorza | 9:34008d8b1cdf | 57 | int8_t _lastdx; |
taylorza | 9:34008d8b1cdf | 58 | int8_t _lastdy; |
taylorza | 9:34008d8b1cdf | 59 | uint8_t _speed; |
taylorza | 9:34008d8b1cdf | 60 | uint8_t _animationCounter; |
taylorza | 9:34008d8b1cdf | 61 | Rect _collisionRect; |
taylorza | 9:34008d8b1cdf | 62 | bool _flipSprite; |
taylorza | 9:34008d8b1cdf | 63 | |
taylorza | 9:34008d8b1cdf | 64 | Scene *_pScene; |
taylorza | 9:34008d8b1cdf | 65 | |
taylorza | 9:34008d8b1cdf | 66 | friend class Scene; |
taylorza | 9:34008d8b1cdf | 67 | }; |
taylorza | 9:34008d8b1cdf | 68 | |
taylorza | 9:34008d8b1cdf | 69 | #endif //__GAMEOBJECT_H__ |