m2anicontroller.h

来自「3D游戏展示程序」· C头文件 代码 · 共 72 行

H
72
字号
//--------------------------------------------------
//  Desc: M2 Animation Controller
//  Date: 2007.4.30 /update
//  Author: Artsylee
//
//  From: WOW Model Viewer
//  I just coding in my own ways!
//
//--------------------------------------------------

#ifndef _M2ANICONTROLLER_
#define _M2ANICONTROLLER_

struct ModelAnimation;

struct AnimInfo
{
	AnimInfo()
	{
		m_bEnable = false;
	}
	unsigned int	m_AnimID;
	int				m_Loops;
	bool			m_bEnable;
};

#define ANIGROUPNUM		4
#define CHANNELNUM		2

class M2AniController
{
public:
	M2AniController(ModelAnimation *pAni);
	~M2AniController();
	void Clear();

	bool IsPause(void);
	bool IsChannelEnable(int channel);
	void EnableChannel(int channel);
	void DisableChannel(int channel);
	void EnableGroup(int channel, int group);
	void DisableGroup(int channel, int group);
	
	int Update(int Deltatime);

	void AddAni(unsigned int id, int loop); 
	void SetAni(int channel, int group, unsigned int id, int loop);

	void Play();
	void Stop(int channel);
	void Pause(bool bForce = false);

	void Next(int channel);

	int GetAnim(int channel = 0);
	int GetFrame(int channel = 0);
	int GetFrameCount(int channel = 0);
	void SetSpeed(float speed)			{ m_fSpeed = speed;		}
	float GetSpeed(void)				{ return m_fSpeed;		}
	
private:
	ModelAnimation*	m_pAni;
	AnimInfo		m_AniGroup[CHANNELNUM][ANIGROUPNUM];
	int				m_Index[CHANNELNUM];
	unsigned int	m_Frame[CHANNELNUM];
	bool			m_bChannelEnable[CHANNELNUM];

	float			m_fSpeed;
	bool			m_bPause;
};

#endif // _M2ANICONTROLLER_

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?