1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
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
|