📄 ctalk.h
字号:
//对话类
//作者:吴振华(kylinx)(中国科大01级11系)
//E-mail:game-diy@163.com
//Created 2003/7/13 by Kylinx
#ifndef LOA_TALK_H_
#define LOA_TALK_H_
#include<windows.h>
#include"CRender.h"
#include"klds.h"
class CDisplay;
class CFont;
class CGame;
struct STRenderRole;
struct STTalk
{
struct STTextSegment
{
DWORD dwTextCount;
DWORD dwTextColor;
};
int nSegCount;
STTextSegment *pTextSeg;
DWORD dwBkColor; //背景颜色
DWORD dwDelay; //延时
int nBkAlpha; //背景alpha混合程度
char szMsg[1024]; //文字内容
STTalk()
{
memset(szMsg,0,1024);
}
};
class CRenderText:public CRenderTask
{
CDisplay*m_pDisplay;
char m_szText[1024];
int m_nCharWidth;
int m_nCharHeight;
int m_nCurChar;
int m_nLineChar;
DWORD m_dwDelay;
DWORD m_dwOldTime;
DWORD m_dwBkColor;
DWORD m_dwDefaultTextColor;
int m_nBkAlpha;
int m_x;
int m_y;
BOOL m_bExt;
BOOL m_bEnd;
RECT m_rtArea;
BOOL m_bOwnFont;
CFont*m_pFont;
void AnalyseString();
public:
CRenderText();
virtual ~CRenderText();
void SetPosEndThisText();
void SetText(char*text);
void SetPosStartThisText();
BOOL IsTextShowFinish();
BOOL ShowText(CDisplay*pDisplay,int x,int y,char*str,
DWORD dwDefaultTextColor=RGB(255,255,255),DWORD dwBkColor=RGB(255,0,255),int nBkAlpha=16,
int nLineChar=50,
DWORD dwDelay=50,BOOL bExt=false,CFont*pFont=NULL);
RECT GetRect() {return m_rtArea;}
void EndRender();
protected:
virtual void LOA_RENDER_API Render(); //渲染
virtual BOOL LOA_RENDER_API IsRenderComplete(); //是否渲染结束
virtual void LOA_RENDER_API Release(); //释放派生类的资源
};
class CTalk
{
KGDQueue<char*> *m_pTalkQueue; //对话队列
BOOL m_bWaitKey;
public:
CTalk();
virtual ~CTalk();
static DWORD s_dwColorTable[10];
BOOL ShowMessage(CGame*pGame,char*szMsg,DWORD dwDelay=50,int x=250,int y=220,
CFont*pFont=NULL,DWORD dwTextColor=RGB(255,255,255),
DWORD dwBkColor=RGB(0,0,255),int nBkAlpha=16,
DWORD dwLineChar=50,
BOOL bWaitKey=false);
BOOL AddTalk(char*szTalk);
BOOL ShowTalk(STRenderRole*pRole,CGame*pGame,BOOL bShowDown=true,
DWORD dwDefaultTextColor=RGB(255,255,255),
DWORD dwDefaultBkColor=RGB(255,0,255),DWORD dwDelay=50,
BOOL bWaitKey=true,int nBkAlpha=16);
void Clear();
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -