Particle Game Maker Engine  1.0.0
Enables the user to create their own particle game using a simple and coherent api in the PongChamp scripting language
UpdateFuncObjects.h
Go to the documentation of this file.
1 #ifndef UPDATE_FUNC_OBJECTS_H
2 #define UPDATE_FUNC_OBJECTS_H
3 
4 #include "ParticleGroupHandle.h"
5 
6 
8  public:
14  UpdateFuncObject(int framesPerUpdate, int updateLimit);
22  void update(uint32_t particleId, ParticleGroupHandle* group, int x, int y, unsigned int framesElapsed);
23  protected:
24  virtual void doUpdate(uint32_t particleId, ParticleGroupHandle* group, int x, int y, unsigned int framesElapsed) = 0;
25  private:
26  struct ParticleState {
27  int framesLeft;
28  int updatesLeft;
29  };
30  std::map<uint32_t, ParticleState> particleStates;
31  int framesPerUpdate;
32  int updateLimit;
33 };
34 
35 
36 class Update_Move : public UpdateFuncObject {
37  public:
41  Update_Move(int framesPerUpdate, int updateLimit, int xStep, int yStep);
42  protected:
43  void doUpdate(uint32_t particleId, ParticleGroupHandle* group, int x, int y, unsigned int framesElapsed);
44  private:
45  int xStep, yStep;
46 };
47 
49  public:
53  Update_Lifetime(int framesPerUpdate, int updateLimit, int framesAlive);
54  protected:
55  void doUpdate(uint32_t particleId, ParticleGroupHandle* group, int x, int y, unsigned int framesElapsed);
56  private:
57  std::map<uint32_t, int> framesLeft;
58  int framesAlive;
59 };
60 
62  public:
66  Update_RandomMove(int framesPerUpdate, int updateLimit, int xRange, int yRange);
67  protected:
68  void doUpdate(uint32_t particleId, ParticleGroupHandle* group, int x, int y, unsigned int framesElapsed);
69  private:
70  int xRange, yRange;
71 };
72 
74  public:
75  Update_Create(int framesPerUpdate, int updateLimit, ParticleGroupHandle* newParticle, int count, int xOff, int yOff, int xRange, int yRange);
76  protected:
77  void doUpdate(uint32_t particleId, ParticleGroupHandle* group, int x, int y, unsigned int framesElapsed);
78  private:
79  ParticleGroupHandle* newParticle;
80  int count, xOff, yOff, xRange, yRange;
81 };
82 
83 #endif
void doUpdate(uint32_t particleId, ParticleGroupHandle *group, int x, int y, unsigned int framesElapsed)
Definition: UpdateFuncObjects.cpp:76
Update_Create(int framesPerUpdate, int updateLimit, ParticleGroupHandle *newParticle, int count, int xOff, int yOff, int xRange, int yRange)
Definition: UpdateFuncObjects.cpp:71
Definition: UpdateFuncObjects.h:73
void doUpdate(uint32_t particleId, ParticleGroupHandle *group, int x, int y, unsigned int framesElapsed)
Definition: UpdateFuncObjects.cpp:65
Definition: UpdateFuncObjects.h:61
void doUpdate(uint32_t particleId, ParticleGroupHandle *group, int x, int y, unsigned int framesElapsed)
Definition: UpdateFuncObjects.cpp:43
Update_Lifetime(int framesPerUpdate, int updateLimit, int framesAlive)
Definition: UpdateFuncObjects.cpp:41
Definition: UpdateFuncObjects.h:48
void doUpdate(uint32_t particleId, ParticleGroupHandle *group, int x, int y, unsigned int framesElapsed)
Definition: UpdateFuncObjects.cpp:37
Update_Move(int framesPerUpdate, int updateLimit, int xStep, int yStep)
Definition: UpdateFuncObjects.cpp:35
Definition: UpdateFuncObjects.h:36
virtual void doUpdate(uint32_t particleId, ParticleGroupHandle *group, int x, int y, unsigned int framesElapsed) = 0
Definition: ParticleGroupHandle.h:29
void update(uint32_t particleId, ParticleGroupHandle *group, int x, int y, unsigned int framesElapsed)
Definition: UpdateFuncObjects.cpp:7
Update_RandomMove(int framesPerUpdate, int updateLimit, int xRange, int yRange)
Definition: UpdateFuncObjects.cpp:60
UpdateFuncObject(int framesPerUpdate, int updateLimit)
Definition: UpdateFuncObjects.cpp:5
Definition: UpdateFuncObjects.h:7