📄 cmagic.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 + -