hgeanim.h
上传用户:jnfxsk
上传日期:2022-06-16
资源大小:3675k
文件大小:2k
源码类别:

游戏引擎

开发平台:

Visual C++

  1. /*
  2. ** Haaf's Game Engine 1.7
  3. ** Copyright (C) 2003-2007, 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 SetTexture(HTEXTURE tex) { hgeSprite::SetTexture(tex); orig_width = hge->Texture_GetWidth(tex, true); }
  31. void SetTextureRect(float x1, float y1, float x2, float y2) { hgeSprite::SetTextureRect(x1,y1,x2,y2); SetFrame(nCurFrame); }
  32. void SetMode(int mode);
  33. void SetSpeed(float FPS) { fSpeed=1.0f/FPS; }
  34. void SetFrame(int n);
  35. void SetFrames(int n) { nFrames=n; }
  36. int GetMode() const { return Mode; }
  37. float GetSpeed() const { return 1.0f/fSpeed; }
  38. int GetFrame() const { return nCurFrame; }
  39. int GetFrames() const { return nFrames; }
  40. private:
  41. hgeAnimation();
  42. int orig_width;
  43. bool bPlaying;
  44. float fSpeed;
  45. float fSinceLastFrame;
  46. int Mode;
  47. int nDelta;
  48. int nFrames;
  49. int nCurFrame;
  50. };
  51. #endif