基本上實現一個基于靜態文本多任務的過程.
注:主要針對當前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專門實現比較智能,先學習學習他的在繼續寫我的了。。