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.

Dependencies:   mbed

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?

UserRevisionLine numberNew 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__