符串color字符的颜色StartTime开始显示的时间LastTime显示多长时间
TEXTDESC
ext链表节点TEXTDESCPTEXTDESCclassCTextprotectedDWORDTime当前时间PTEXTDESCpText字符串链表LPDIRECTDRAWSURFACE7lpDDSBack后台缓冲表面public获得后台缓冲表面voidSet_lpDDSBack
f第8章
生成游戏
301
LPDIRECTDRAWSURFACE7lpBackSurflpDDSBacklpBackSurf构造函数CText析构函数CText删除字符串链表voidDeleteTextvoid获得要显示的字符串并设置对应字符描述的属性voidGetTextLPDIRECTDRAWSURFACE7lpSurfLONGxLONGyLPCSTRlpTextDWORDcolorDWORDLastTime获得要显示的整数并设置对应字符描述的属性voidGetTextLPDIRECTDRAWSURFACE7lpSurfLONGxLONGyLONGlNumberDWORDcolorDWORDLastTime获得要显示的浮点数并设置对应字符描述的属性voidGetTextLPDIRECTDRAWSURFACE7lpSurfLONGxLONGyFLOATfNumberDWORDcolorDWORDLastTime指定要在后台缓冲表面中显示的字符串voidTextBackSurfLONGxLONGyLPCSTRlpTextDWORDcolorDWORDLastTime指定要在后台缓冲表面中显示的整数voidTextBackSurfLONGxLONGyLONGlNumberDWORDcolorDWORDLastTime指定要在后台缓冲表面中显示的浮点数
f302voidTextBackSurfLONGxLONGyFLOATfNumberDWORDcolorDWORDLastTime显示字符串链表中的字符串voidReMai
void
C游戏编程
代码分析:可以这样来实现设置文字显示时间长度等属性的:当要显示指定文字时,把表面、在表面中的显示位置、文字、文字的颜色、开始显示的时间和显示多长时间这六个属性记录下来;每一次的消息循环都显示记录下来的文字,直到显示的时间长度达到指定的长度才把记录下来的文字删除。很显然,必需为文字定义一个属性的描述。这些属性就是前面提到的那六个属性。所以,CText类的声明文件CTexth的头部定义了一个文字描述结构TEXTDESC。在文字描述间,以链表的形式来把它们连接起来。程序通过调用Set_lpDDSBack成员获取后台缓冲表面。通过调用重载成员函数GetText来记录要显示的文字的属性。每一次的消息机制循环都调用成员函数ReMai
,来显示文字链表中的字符串。2构造与析构首先是构造函数和析构函数。其具体代码如下:
CTextCTextvoidpTextNULLlpDDSBackNULLCTextCTextDeleteText
对于这两个函数,不用再说什么了。3删除文件链表当退出程序后,CText类中的文字链表必须删除。DeleteText成员的功能就是删除文字链表。该成员只用于析构函数中。其代码如下:
函数名:DeleteText
f第8章功能:释放字符链表空间cr