TurtleBrains  0.3.5
High quality, portable, C++ framework for rapid 2D game development.
tbx_translate_behaviors.hpp
1 
9 #ifndef TurtleBrains_TranslateBehaviors_hpp
10 #define TurtleBrains_TranslateBehaviors_hpp
11 
12 #include <turtle_brains/express/behaviors/tbx_tweening_behavior.hpp>
13 #include <turtle_brains/game/tb_entity_behavior_interface.hpp>
14 #include <turtle_brains/game/tb_game_timer.hpp>
15 
16 namespace TurtleBrainsExpress
17 {
18  namespace Behaviors
19  {
26  {
27  public:
37  TranslateBehavior(tbGame::Entity& entity, const tbMath::Vector2& velocity);
38 
42  virtual ~TranslateBehavior(void);
43 
47  virtual void OnSimulate(void) override;
48 
49  private:
50  const tbMath::Vector2 mVelocity;
51  };
52 
53 
58  class TranslateTweenBehavior : public TweeningBehavior<tbMath::Vector2>
59  {
60  public:
70  TranslateTweenBehavior(tbGame::Entity& entity, const tbMath::Vector2& desiredPosition, const tbGame::GameTimer& time, const TweenMode& tweenMode);
71 
75  virtual ~TranslateTweenBehavior(void);
76 
81  virtual void OnRemove(void) override;
82 
88  virtual void OnResume(void) override;
89 
94  virtual void OnSimulate(void) override;
95 
96  private:
97  };
98 
99 
105  {
106  public:
115  TranslateToBehavior(tbGame::Entity& entity, const tbMath::Vector2& desiredPosition, float moveSpeed);
116 
120  virtual ~TranslateToBehavior(void);
121 
125  virtual void OnRemove(void) override;
126 
131  virtual void OnSimulate(void) override;
132 
133  private:
134  const tbMath::Vector2 mDesiredPosition;
135  const float mMoveSpeed;
136  };
137 
138 
144  {
145  public:
155  TranslateForBehavior(tbGame::Entity& entity, const tbMath::Vector2& velocity, const tbGame::GameTimer& forTime);
156 
160  virtual ~TranslateForBehavior(void);
161 
166  virtual void OnSimulate(void) override;
167 
168  private:
169  const tbMath::Vector2 mVelocity;
170  tbGame::GameTimer mTimeRemaining;
171  };
172 
173  }; /* namespace Behaviors */
174 }; /* namespace TurtleBrainsExpress */
175 
177 
178 #endif /* TurtleBrains_TranslateBehaviors_hpp */
Definition: tb_vector.hpp:48
Definition: tbx_translate_behaviors.hpp:143
Definition: tb_entity.hpp:46
TranslateBehavior(tbGame::Entity &entity, const tbMath::Vector2 &velocity)
TranslateTweenBehavior(tbGame::Entity &entity, const tbMath::Vector2 &desiredPosition, const tbGame::GameTimer &time, const TweenMode &tweenMode)
Definition: tb_entity_behavior_interface.hpp:24
TranslateToBehavior(tbGame::Entity &entity, const tbMath::Vector2 &desiredPosition, float moveSpeed)
A collection of objects and functions to express games quickly.
Definition: tbx_tweening_behavior.hpp:26
Definition: tbx_translate_behaviors.hpp:104
Definition: tbx_translate_behaviors.hpp:58
TranslateForBehavior(tbGame::Entity &entity, const tbMath::Vector2 &velocity, const tbGame::GameTimer &forTime)
Contains high-level objects to control the entities in game worlds.
Definition: tb_game_timer.hpp:25
Definition: tbx_translate_behaviors.hpp:25