TurtleBrains  0.3.1
High quality, portable, C++ framework for rapid 2D game development.
tbx_effects_behaviors.h
1 
9 #ifndef _TurtleBrains_EffectsBehaviors_h_
10 #define _TurtleBrains_EffectsBehaviors_h_
11 
12 #include "../../game/tb_entity_behavior_interface.h"
13 #include "../../game/tb_game_timer.h"
14 #include "../../graphics/tb_animated_sprite.h"
15 #include "../../graphics/tb_camera.h"
16 
17 namespace TurtleBrainsExpress
18 {
19  namespace Behaviors
20  {
21 
32  {
33  public:
48  explicit PlayAnimationBehavior(tbGame::Entity& entity, tbGraphics::AnimatedSprite& animatedSprite,
49  const tbCore::tbString& sequenceName, bool isLooping = false, bool isForward = true);
50 
54  virtual ~PlayAnimationBehavior(void);
55 
65  virtual void OnResume(void) override;
66 
73  virtual void OnSimulate(void) override;
74 
75  private:
76  const tbCore::tbString mSequenceName;
77  tbGraphics::AnimatedSprite& mAnimatedSprite;
78  const bool mIsLooping;
79  const bool mIsForward;
80  };
81 
82 //--------------------------------------------------------------------------------------------------------------------//
83 
92  {
93  public:
97  explicit PlaySoundBehavior(tbGame::Entity& entity, const tbCore::tbString& eventTableName, const tbCore::tbString& eventName);
98 
102  virtual ~PlaySoundBehavior(void);
103 
107  virtual void OnResume(void) override;
108 
112  virtual void OnSimulate(void) override;
113 
114  private:
115  const tbCore::tbString mEventTableName;
116  const tbCore::tbString mEventName;
117  };
118 
127  {
128  public:
132  explicit ShakeScreenBehavior(tbGame::Entity& entity, const tbGraphics::Camera::IntensityLevel& shakeIntensity, float shakeDuration = -1.0f);
133 
137  virtual ~ShakeScreenBehavior(void);
138 
142  virtual void OnResume(void) override;
143 
147  virtual void OnSimulate(void) override;
148 
149  private:
150  const tbGraphics::Camera::IntensityLevel mShakeIntensity;
151  const float mShakeDuration; //negative will default to a duration for the intensity.
152  };
153 
154 
155 
157 
162  {
163  public:
167  explicit FadeColorBehavior(tbGame::Entity& entity, tbGraphics::Graphic& graphic, const tbGraphics::Color& desiredColor, const tbGame::GameTimer& time);
168 
172  virtual ~FadeColorBehavior(void);
173 
177  virtual void OnResume(void) override;
178 
182  virtual void OnSimulate(void) override;
183 
184  private:
185  const tbGraphics::Color mDesiredColor;
186  tbGraphics::Color mOriginalColor;
187  const tbGame::GameTimer mMaximumTime;
188  tbGame::GameTimer mTimer;
189  tbGraphics::Graphic& mGraphic;
190  };
191 
192 
193  }; /* namespace Behaviors */
194 }; /* namespace TurtleBrainsExpress */
195 
197 
198 #endif /* _TurtleBrains_EffectsBehaviors_h_ */
Definition: tb_graphic.h:61
Definition: tb_entity.h:46
THIS IS NOT TO LIVE HERE VERY LONG!!! TODO: TurtleBrains: MOVE.
Definition: tbx_effects_behaviors.h:161
IntensityLevel
Definition: tb_camera.h:55
Definition: tb_entity_behavior_interface.h:25
A collection of objects and functions to express games quickly.
Definition: tb_color.h:23
Definition: tbx_effects_behaviors.h:126
FadeColorBehavior(tbGame::Entity &entity, tbGraphics::Graphic &graphic, const tbGraphics::Color &desiredColor, const tbGame::GameTimer &time)
Contains high-level objects to control the entities in game worlds.
ShakeScreenBehavior(tbGame::Entity &entity, const tbGraphics::Camera::IntensityLevel &shakeIntensity, float shakeDuration=-1.0f)
Definition: tbx_effects_behaviors.h:31
PlayAnimationBehavior(tbGame::Entity &entity, tbGraphics::AnimatedSprite &animatedSprite, const tbCore::tbString &sequenceName, bool isLooping=false, bool isForward=true)
Definition: tbx_effects_behaviors.h:91
std::string tbString
Definition: tb_string.h:335
Definition: tb_animated_sprite.h:119
Definition: tb_game_timer.h:25
PlaySoundBehavior(tbGame::Entity &entity, const tbCore::tbString &eventTableName, const tbCore::tbString &eventName)