Chris Taylor / Mbed 2 deprecated RETRO-CaveDweller Featured

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 };