⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 animcontroller.h

📁 C人工智能游戏开发的一些实例源代码 C Game development in artificial intelligence source code of some examples
💻 H
字号:
#ifndef AnimController_H
#define AnimController_H

#pragma warning(disable:4786)
#include <Map>

#define MAX_NAME 20

// --------------------------------------------------------------------------

// Bit flags categorizing animation by part of body it controls.
enum EnumAnimCategory {
	kACat_Invalid	= (0 << 0),

	kACat_LeftLeg			= (1 << 0),
	kACat_RightLeg			= (1 << 1),
	kACat_Waist				= (1 << 2),
	kACat_Tail				= (1 << 3),
	kACat_LowerReserved1	= (1 << 4),	// Replace when needed.
	kACat_LowerReserved2	= (1 << 5),	// Replace when needed.
	kACat_LowerReserved3	= (1 << 6),	// Replace when needed.
	kACat_LowerReserved4	= (1 << 7),	// Replace when needed.
	kACat_LowerBody			= kACat_LeftLeg | kACat_RightLeg | kACat_Waist | kACat_Tail | kACat_LowerReserved1 | kACat_LowerReserved2 | kACat_LowerReserved3 | kACat_LowerReserved4,

	kACat_Torso				= (1 << 8),
	kACat_RightArm			= (1 << 9),
	kACat_LeftArm			= (1 << 10),
	kACat_Head				= (1 << 11),
	kACat_UpperReserved1	= (1 << 12), // Replace when needed.
	kACat_UpperReserved2	= (1 << 13), // Replace when needed.
	kACat_UpperReserved3	= (1 << 14), // Replace when needed.
	kACat_UpperReserved4	= (1 << 15), // Replace when needed.
	kACat_UpperBody			= kACat_Torso | kACat_RightArm | kACat_LeftArm | kACat_Head | kACat_UpperReserved1 | kACat_UpperReserved2 | kACat_UpperReserved3 | kACat_UpperReserved4,

	kACat_FullBody	= 0xffffffff,
};

// --------------------------------------------------------------------------

struct AnimFileStruct
{
	char				szFileName[MAX_NAME];
	unsigned long		nPriority;
	EnumAnimCategory	eCategory;

	//
	// Other animation file data here...
	//
};

struct AnimInstanceStruct
{
	AnimInstanceStruct(AnimFileStruct* _pAnimFileStruct)
	{
		pAnimFileStruct = _pAnimFileStruct;
	}

	AnimFileStruct*	pAnimFileStruct;
	
	//
	// Other animation instance data here...
	//
};

// Animations sorted by category.
typedef std::map<unsigned long, AnimInstanceStruct, std::greater<unsigned long> > ANIM_INSTANCE_MAP;


// --------------------------------------------------------------------------

class CAnimController 
{
public:

	bool	PlayAnim(AnimFileStruct* pRequestedAnim);
	void	Print();

protected:

	ANIM_INSTANCE_MAP	m_mapAnimInstances;
};

// --------------------------------------------------------------------------

#endif

⌨️ 快捷键说明

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