SpriteController.h
Go to the documentation of this file.00001 00011 #ifndef __SpriteController_H__ 00012 #define __SpriteController_H__ 00013 00014 // Includes 00015 #include "Array.h" 00016 #include "StringId.h" 00017 00018 // Forward declares 00019 class Sprite; 00020 class SpriteAction; 00021 00022 // SpriteController 00023 class SpriteController 00024 { 00025 public: 00026 void Update(float deltaTime); 00027 00028 Sprite* GetSprite() const; 00029 00030 void AddAction(SpriteAction* action, float delay = 0.0f, StringId startTrigger = 0, StringId endTrigger = 0, StringId actionId = 0); 00031 00032 void RemoveAction(SpriteAction* action); 00033 00034 void RemoveAction(StringId actionId); 00035 00036 void AddOffset(float x, float y); 00037 00038 void AddVelocity(float x, float y); 00039 00040 int GetActionCount() const; 00041 private: 00042 friend class SpriteControllerManager; 00043 00044 SpriteController(Sprite* sprite); 00045 00046 ~SpriteController(); 00047 00048 int GetReferenceCount() const; 00049 00050 void IncreaseReferenceCount(); 00051 00052 void DecreaseReferenceCount(); 00053 00054 private: 00055 Sprite* sprite_; 00056 00057 int referenceCount_; 00058 00059 struct ActionEntry 00060 { 00061 SpriteAction* action; 00062 float delay; 00063 StringId startTrigger; 00064 StringId endTrigger; 00065 StringId actionId; 00066 float timeLeftToStart; 00067 }; 00068 00069 Array<ActionEntry*> currentActions_; 00070 Array<ActionEntry*> queuedActions_; 00071 00072 float velocityX_; 00073 float velocityY_; 00074 float offsetX_; 00075 float offsetY_; 00076 float previousOffsetX_; 00077 float previousOffsetY_; 00078 }; 00079 00080 #endif /* __SpriteController_H__ */ 00081
Reproduction/republishing of any material on this site without permission is strictly prohibited.
