基本上实现一个基于静态文本多任务的过程.
注:主要针对当前CEGUI的最新库0.7.1。
目的:游戏制作过程中一般打开NPC会弹出一个对话框,一般对话框就是显示一段话,有图片,超链接,文字,同时文本分别有不同的颜色!
那么只要我们输入一段文本,对话框的控件解析文本定义好的标签然后显示所有文本内容和图片即可。
实现方式:
1.超链接控件既要响应点击消息,又要有超级链接标记的下划线。实现方式主要参考了Button的Clicked事件,StaticText的render渲染过程,重新写的一个基于超级链接组件。
2.文本解析利用了当前CEGUI的版本的BasicRenderedStringParser类,我们只需要继承此类,然后设置系统默认的文本解析类为我们当前的类。
3.写超级链接组件的渲染过程主要方便支持CELayoutEditor的可视化编辑。
实现结果:
1.文本显示颜色。
2.换行操作。
3.支持超级链接的显示,以及事件响应和事件处理,事件响应为CEGUI::HyperText::EventClicked。
4.超链接的下划线绘制。
5.支持图片显示和支持图片事件响应。
假设我们的解析文本如下:
标签定义如下
[N]则是换行字符
[C]字体颜色
[A]超级链接
[M]图片
相对来说编写此文本比较简单.
具体用法
xxx 显示文本xxx
[C XX] xx表示32位的字体颜色
[A 1: XX] xx 超级链接显示内容。
[M xx] xx表示图片名字
colorTest:[N]
StaticTxt test1![N]
[C FFFF0000]StaticTxt test2! [N]
[C FFFFFF00]StaticTxt test3! [N] [N] [N]
[C FFFF0000]HyperLink Test: [N]
[A 1:this is the Hyperlink!this is the Hyperlink!][N]
[A 2:this is the second Hyperlink! this is hyperlink!!!][N]
[A 3:this is the third hyperlink!this is hyperlink!this is hyperlink!this is hyperlink!]
[N] [N] [N]
Image Text:[M 381] [M 286] [M 669]
具体过程:
后期目标支持动画的显示,比如GIF格式图片.
实现过程相对繁琐,而且涉及datafiles配置一些处理。
可能真正游戏界面上的实现可能会更丰富,其实也就是增加几个标签然后解析即可。
注:上次听盖老板说有本书专门介绍足球AI,然后专门去买了,看其介绍他实现上足球仿真AI专门实现比较智能,先学习学习他的在继续写我的了。。