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

📄 cmagic.h

📁 一个个人开发的rpg游戏<亚特兰蒂斯传奇>的源码
💻 H
字号:
//魔法类
//作者:吴振华(kylinx)(中国科大01级11系)
//E-mail:game-diy@163.com
//Created 2003/6/24 by Kylinx
//第一次修改于2003/6/25 by Kylinx
//修正内容:日志
//第二次修改于2003/6/28 by Kylinx
//修正内容:更改CMagic类,适应新的流水线渲染
#ifndef LOA_MAGIC_H_
#define LOA_MAGIC_H_
#include<windows.h>

#include"dxlib\\dsutil.h"
#include"dxlib\\ddutil.h"
#include"CRender.h"
#include"CDataBase.h"
struct STMagic
{
	int ID;
	int nChangeHp;												//魔法改变目标的HP,hp<0为攻击魔法,>0为恢复魔法
	int nChangeMp;												//消耗的MP
	BOOL bToAll;												//是否针对全体
	CSurface*pSurface;											//魔法图片表面
	CSound*pSound;												//音效
	int nFrames;												//总帧数
	RECT*aRect;													//魔法区域
	DWORD dwOldTime;											//上一帧的时间
	DWORD dwDelay;												//延时
	char szName[32];											//名称
	char szIntroduce[256];										//介绍

	STMagic()
	{
		pSurface=NULL;
		pSound=NULL;
		aRect=NULL;
	}
	~STMagic()
	{
		if(pSurface)
		{
			delete pSurface;
			pSurface=NULL;
		}
		if(pSound)
		{
			delete pSound;
			pSound=NULL;
		}
		if(aRect)
		{
			delete [] aRect;
			aRect=NULL;
		}
	}
};
class CLog;
class CGame;
class CMagic:public CRenderTask
{
	CLog					*m_pLog;				//日志

	int						x,y;
	int						m_nCurrentFrame;		//当前魔法帧
	STMagic					*m_pMagic;				//魔法
	CDisplay				*m_pDisplay;			//显示类

public:
	CMagic();
	~CMagic();
	BOOL InitMagic(CGame*pGame,STMagic*pMagic,int x,int y);
	BOOL ShowMagic(CGame*pGame,STMagic*pMagic,int x,int y,int nPriority=0);	
													//在x,y处显示魔法(添加到任务队列中)
													//在显示一次魔法完成后自动释放内存													
	//下面3个函数不得调用!由系统回调
protected:
	void LOA_RENDER_API Render();					//从CRenderTask这个虚基类继承
	BOOL LOA_RENDER_API IsRenderComplete();			//从CRenderTask这个虚基类继承
	void LOA_RENDER_API Release();					//从CRenderTask这个虚基类继承	
};

class CFont;
class CRenderRoleMagic:public CRenderTask
{
	CDisplay			*m_pDisplay;
	CFont				*m_pFont;
	STMagic				*m_pMagic;
	int					m_nCurrentMagicFrame;
	DWORD				m_dwOldTime;
	BOOL				m_bStopRender;
public:
	void StopRender();
	~CRenderRoleMagic(){Release();}
	BOOL SetRender(CDisplay*pDisplay,CFont*pFont,STMagic*pMagic);
protected:
	virtual void LOA_RENDER_API Render();					//渲染
	virtual BOOL LOA_RENDER_API IsRenderComplete();			//是否渲染结束
	virtual void LOA_RENDER_API Release();					//释放派生类的资源
};
#endif

⌨️ 快捷键说明

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