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

📄 ctalk.h

📁 一个个人开发的rpg游戏<亚特兰蒂斯传奇>的源码
💻 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 + -