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

📄 objectmanager.h

📁 RPG游戏源代码,里面有RPG游戏的制作流程,供大家学习如何制作RPG游戏
💻 H
字号:
//////////////////////////////////////////////////////////////////////
// ObjectManager.h: interface for the CObjectManager class.
// RPGDemo框架程序	道具管理类
// written by 萧萧落木(Roc.j.Wood)
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_OBJECTMANAGER_H__3D678D7A_6336_4451_A6FB_73713D9AB594__INCLUDED_)
#define AFX_OBJECTMANAGER_H__3D678D7A_6336_4451_A6FB_73713D9AB594__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class CGScene;

#pragma pack(push,1)
struct OBJItem				//道具项目类
{			
	CHAR	szName[32];		//道具名称
	LONG	Type;			//道具类型
	CHAR	szScript[32];	//道具对应的脚本文件
	
	OBJItem() { memset(szName,0,32);Type=-1;memset(szScript,0,32); }
	~OBJItem() {}			//注意,这里不能用虚函数哟!
};
#pragma pack(pop)

#define MAX_OBJITEMS		1024			//最多道具数
#define OBJECT_FILENAME		"OBJECT.BIN"	//道具设定文件

#define ITEMTYPE_UNKNOWN	0		//未知道具类型
#define ITEMTYPE_WEAPON		1		//兵器
#define ITEMTYPE_ARMOR		2		//护甲
#define ITEMTYPE_MEDIC		3		//补充药物

class CGObjectManager  
{
public:
	CGObjectManager();
	virtual ~CGObjectManager();

public:
////////////////////////// 道具管理类接口 ////////////////////////////
	HRESULT		InitObjectList(CGScene *pScene);	//初始化道具管理类
	HRESULT		RenderOBJList();		//渲染道具对话框
	HRESULT		ProcessOBJList();		//道具对话框处理
	
	HRESULT		AddItem(LPCTSTR ObjName,LONG Count=1);	//添加道具
	HRESULT		AddItem(LONG ItemIndex,LONG Count=1);	//添加道具
	HRESULT		AddItemOnce(LPCTSTR ObjName);			//一次性添加道具
	
	HRESULT		UseItem(LPCTSTR ObjName);		//使用道具
	HRESULT		UseItem(LONG ItemIndex);		//使用道具
//////////////////////////////////////////////////////////////////////

protected:
	LONG		GetItemIndex(LPCTSTR ObjName);
	LONG		GetItemType(LONG ItemIndex) const;
	LPCTSTR		GetItemName(LONG ItemIndex) const;
	LONG		GetObjCount() const	{ return m_ObjCount; }

private:
	CGScene		*m_pScene;

	LONG		m_ObjCount;						//道具数
	OBJItem		m_pObjItems[MAX_OBJITEMS];		//道具项目表
	LONG		m_iObjPackage[MAX_OBJITEMS];	//道具拥有量数组

	LONG		m_iListTop;			//对话框列表最前的道具序号
	LONG		m_iListSelect;		//对话框列表已经选中的道具序号

	CGAFDDrawSurface	OBJDialog;	//对话框图层Surface
};

inline LONG CGObjectManager::GetItemType(LONG ItemIndex) const
{
	assert(ItemIndex>=0 && ItemIndex<m_ObjCount);
	return m_pObjItems[ItemIndex].Type;
}

inline LPCTSTR CGObjectManager::GetItemName(LONG ItemIndex) const
{
	assert(ItemIndex>=0 && ItemIndex<m_ObjCount);
	return m_pObjItems[ItemIndex].szName;
}

#endif // !defined(AFX_OBJECTMANAGER_H__3D678D7A_6336_4451_A6FB_73713D9AB594__INCLUDED_)

⌨️ 快捷键说明

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