hgeanim.h
上传用户:maxiaolivb
上传日期:2022-06-07
资源大小:915k
文件大小:1k
源码类别:

游戏引擎

开发平台:

Visual C++

  1. /*
  2. ** Haaf's Game Engine 1.5
  3. ** Copyright (C) 2003-2004, Relish Games
  4. ** hge.relishgames.com
  5. **
  6. ** hgeAnimation helper class header
  7. */
  8. #ifndef HGEANIM_H
  9. #define HGEANIM_H
  10. #include "hgesprite.h"
  11. #define HGEANIM_FWD 0
  12. #define HGEANIM_REV 1
  13. #define HGEANIM_PINGPONG 2
  14. #define HGEANIM_NOPINGPONG 0
  15. #define HGEANIM_LOOP 4
  16. #define HGEANIM_NOLOOP 0
  17. /*
  18. ** HGE Animation class
  19. */
  20. class hgeAnimation : public hgeSprite
  21. {
  22. public:
  23. hgeAnimation(HTEXTURE tex, int nframes, float FPS, float x, float y, float w, float h);
  24. hgeAnimation(const hgeAnimation &anim);
  25. void Play();
  26. void Stop() { bPlaying=false; }
  27. void Resume() { bPlaying=true; }
  28. void Update(float fDeltaTime);
  29. bool IsPlaying() const { return bPlaying; }
  30. void SetTextureRect(float x1, float y1, float x2, float y2) { hgeSprite::SetTextureRect(x1,y1,x2,y2); SetFrame(nCurFrame); }
  31. void SetMode(int mode);
  32. void SetSpeed(float FPS) { fSpeed=1.0f/FPS; }
  33. void SetFrame(int n);
  34. void SetFrames(int n) { nFrames=n; }
  35. int GetMode() const { return Mode; }
  36. float GetSpeed() const { return 1.0f/fSpeed; }
  37. int GetFrame() const { return nCurFrame; }
  38. int GetFrames() const { return nFrames; }
  39. private:
  40. hgeAnimation();
  41. bool bPlaying;
  42. float fSpeed;
  43. float fSinceLastFrame;
  44. int Mode;
  45. int nDelta;
  46. int nFrames;
  47. int nCurFrame;
  48. };
  49. #endif