From c91847d549cc1c30eb15504a15ea9a6d5aa48165 Mon Sep 17 00:00:00 2001 From: "chirs241097@gmail.com" Date: Sun, 12 Jan 2014 14:43:14 +0000 Subject: --- include/hgeanim.h | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 include/hgeanim.h (limited to 'include/hgeanim.h') diff --git a/include/hgeanim.h b/include/hgeanim.h new file mode 100644 index 0000000..7c5f237 --- /dev/null +++ b/include/hgeanim.h @@ -0,0 +1,69 @@ +/* +** Haaf's Game Engine 1.7 +** Copyright (C) 2003-2007, Relish Games +** hge.relishgames.com +** +** hgeAnimation helper class header +*/ + + +#ifndef HGEANIM_H +#define HGEANIM_H + + +#include "hgesprite.h" + + +#define HGEANIM_FWD 0 +#define HGEANIM_REV 1 +#define HGEANIM_PINGPONG 2 +#define HGEANIM_NOPINGPONG 0 +#define HGEANIM_LOOP 4 +#define HGEANIM_NOLOOP 0 + + +/* +** HGE Animation class +*/ +class hgeAnimation : public hgeSprite +{ +public: + hgeAnimation(HTEXTURE tex, int nframes, float FPS, float x, float y, float w, float h); + hgeAnimation(const hgeAnimation &anim); + + void Play(); + void Stop() { bPlaying=false; } + void Resume() { bPlaying=true; } + void Update(float fDeltaTime); + bool IsPlaying() const { return bPlaying; } + + void SetTexture(HTEXTURE tex) { hgeSprite::SetTexture(tex); orig_width = hge->Texture_GetWidth(tex, true); } + void SetTextureRect(float x1, float y1, float x2, float y2) { hgeSprite::SetTextureRect(x1,y1,x2,y2); SetFrame(nCurFrame); } + void SetMode(int mode); + void SetSpeed(float FPS) { fSpeed=1.0f/FPS; } + void SetFrame(int n); + void SetFrames(int n) { nFrames=n; } + + int GetMode() const { return Mode; } + float GetSpeed() const { return 1.0f/fSpeed; } + int GetFrame() const { return nCurFrame; } + int GetFrames() const { return nFrames; } + +private: + hgeAnimation(); + + int orig_width; + + bool bPlaying; + + float fSpeed; + float fSinceLastFrame; + + int Mode; + int nDelta; + int nFrames; + int nCurFrame; +}; + + +#endif -- cgit v1.2.3