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.

Dependencies:   mbed

Committer:
taylorza
Date:
Mon Feb 16 03:46:57 2015 +0000
Revision:
16:f9227904afc4
Parent:
4:45ff7fc8a431
Added a 4th game screen

Who changed what in which revision?

UserRevisionLine numberNew contents of line
taylorza 1:ecf7bbccddc1 1 class PatrollingEnemy : public GameObject
taylorza 1:ecf7bbccddc1 2 {
taylorza 1:ecf7bbccddc1 3 public:
taylorza 1:ecf7bbccddc1 4 enum Direction { UpDown, LeftRight };
taylorza 1:ecf7bbccddc1 5
taylorza 4:45ff7fc8a431 6 PatrollingEnemy(uint8_t spriteId, Direction direction) :
taylorza 1:ecf7bbccddc1 7 _direction(direction),
taylorza 1:ecf7bbccddc1 8 _primaryDirection(true)
taylorza 1:ecf7bbccddc1 9 {
taylorza 2:97d01ba6cd91 10 setSpriteId(spriteId);
taylorza 3:a93fe5f207f5 11 setSpeed(1);
taylorza 1:ecf7bbccddc1 12 }
taylorza 1:ecf7bbccddc1 13
taylorza 1:ecf7bbccddc1 14 virtual void update()
taylorza 1:ecf7bbccddc1 15 {
taylorza 1:ecf7bbccddc1 16 if (_primaryDirection)
taylorza 1:ecf7bbccddc1 17 {
taylorza 1:ecf7bbccddc1 18 if (_direction == UpDown)
taylorza 1:ecf7bbccddc1 19 {
taylorza 1:ecf7bbccddc1 20 if (!moveUp()) _primaryDirection = false;
taylorza 1:ecf7bbccddc1 21 }
taylorza 1:ecf7bbccddc1 22 else if (_direction == LeftRight)
taylorza 1:ecf7bbccddc1 23 {
taylorza 1:ecf7bbccddc1 24 if (!moveLeft() || isOpenBelow(-4))
taylorza 1:ecf7bbccddc1 25 {
taylorza 1:ecf7bbccddc1 26 _primaryDirection = false;
taylorza 1:ecf7bbccddc1 27 }
taylorza 1:ecf7bbccddc1 28 }
taylorza 1:ecf7bbccddc1 29 }
taylorza 1:ecf7bbccddc1 30 else
taylorza 1:ecf7bbccddc1 31 {
taylorza 1:ecf7bbccddc1 32 if (_direction == UpDown)
taylorza 1:ecf7bbccddc1 33 {
taylorza 1:ecf7bbccddc1 34 if (!moveDown()) _primaryDirection = true;
taylorza 1:ecf7bbccddc1 35 }
taylorza 1:ecf7bbccddc1 36 else if (_direction == LeftRight)
taylorza 1:ecf7bbccddc1 37 {
taylorza 1:ecf7bbccddc1 38 if (!moveRight() || isOpenBelow(17))
taylorza 1:ecf7bbccddc1 39 {
taylorza 1:ecf7bbccddc1 40 _primaryDirection = true;
taylorza 1:ecf7bbccddc1 41 }
taylorza 1:ecf7bbccddc1 42 }
taylorza 1:ecf7bbccddc1 43 }
taylorza 1:ecf7bbccddc1 44 animate();
taylorza 1:ecf7bbccddc1 45 }
taylorza 1:ecf7bbccddc1 46
taylorza 1:ecf7bbccddc1 47 private:
taylorza 1:ecf7bbccddc1 48 Direction _direction;
taylorza 1:ecf7bbccddc1 49 bool _primaryDirection;
taylorza 2:97d01ba6cd91 50 };