00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00020
00021
00022
00024
00025
00027
00028 #ifndef PARTICLE_H
00029 #define PARTICLE_H
00030
00031 #include "Globals.hpp"
00032
00033 #include <SFML/Graphics.hpp>
00034 #include <string>
00035
00037
00041 class CParticle
00042 {
00043 public:
00045 CParticle();
00046 ~CParticle();
00047
00049 void Init(const std::string& TexName, float FrameWidth = -1, float FrameHeight = -1, int FrameCount = 1);
00050
00052 void SetPosition(float X, float Y) { m_Sprite.SetPosition(X,Y); }
00053
00055 bool Remove();
00056
00058 void Update();
00059
00061 void Draw();
00062
00064 void SetLifeSpan(int LifeSpan) { m_LifeTime = LifeSpan; }
00065
00067 void SetScale(float X, float Y)
00068 {
00069 m_Sprite.SetScale(X,Y);
00070 m_StartScaleX = X;
00071 m_StartScaleY = Y;
00072 }
00073
00075 void SetTargetScale(float X, float Y)
00076 {
00077 m_EndScaleX = X;
00078 m_EndScaleY = Y;
00079 }
00080
00082 void SetStartAlpha(int Alpha) { m_StartAlpha = Alpha; }
00083
00085 void SetEndAlpha(int Alpha) { m_EndAlpha = Alpha; }
00086
00087
00089 void SetStartRed(int Red) { m_StartRed = Red; }
00090
00092 void SetEndRed(int Red) { m_EndRed = Red; }
00093
00095 void SetStartGreen(int Green) { m_StartGreen = Green; }
00096
00098 void SetEndGreen(int Green) { m_EndGreen = Green; }
00099
00101 void SetStartBlue(int Blue) { m_StartBlue = Blue; }
00102
00104 void SetEndBlue(int Blue) { m_EndBlue = Blue; }
00105
00106
00108 void SetStartVelX(float StartVelX) { m_StartVelX = StartVelX; }
00109
00111 void SetEndVelX(float EndVelX) { m_EndVelX = EndVelX; }
00112
00113
00115 void SetStartVelY(float StartVelY) { m_StartVelY = StartVelY; }
00116
00118 void SetEndVelY(float EndVelY) { m_EndVelY = EndVelY; }
00119
00120
00122 void SetAniSpeed(int AniSpeed) { m_AniSpeed = AniSpeed; }
00123 private:
00124 sf::Sprite m_Sprite;
00125
00126 int m_LastAniUpdate;
00127 int m_AniSpeed;
00128
00129 int m_SpawnTime;
00130 int m_LifeTime;
00131
00132 float m_StartScaleX;
00133 float m_StartScaleY;
00134
00135 float m_EndScaleX;
00136 float m_EndScaleY;
00137
00138 int m_StartAlpha;
00139 int m_EndAlpha;
00140
00141 int m_StartRed;
00142 int m_EndRed;
00143
00144 int m_StartGreen;
00145 int m_EndGreen;
00146
00147 int m_StartBlue;
00148 int m_EndBlue;
00149
00150 float m_StartVelX;
00151 float m_EndVelX;
00152
00153 float m_StartVelY;
00154 float m_EndVelY;
00155
00156 };
00157
00158 #endif