如何在CEGUI中使用Lua指令碼入門學習

來源:互聯網
上載者:User

如何在CEGUI中使用Lua指令碼入門學習是本文要介紹的內容,主要是來學習lua指令碼語言在CEGUI如何來使用,不多說,具體內容來看本文詳解。

CEGUI所使用的指令碼是基於Lua5.0.2 和tolua++ 1.06pre2-1的.

介面的編寫很大一部分可以通過指令碼來實現.我們可以修改指令碼而不必重新編譯整個程式,

這就為我們省去了好多時間去設計介面.

目前的Lua指令碼模組仍然處於初期的開發階段。它支援絕大多數的核心系統、基層的視窗類別,不過,對於某些特殊的控制項目前只能通過屬性系統(properties system)來設定。

Ok,我們開始吧!你需要有一定的CEGUI基礎,比如初始化、建立視窗等,當然,還要有一定的Lua基礎。
初始化

Lua指令碼模組囊括了所有的管理類(manager classes),所以可以通過Lua指令碼對CEGUI進行簡單的初始化.例如:

 
  1. #include "CEGUILua.h"  
  2. CEGUI::YourRendererOfChoice* renderer = new YourRendererOfChoice;     
  3. CEGUI::LuaScriptModule* script_module = new CEGUI::LuaScriptModule();     
  4.  
  5. // 第二個參數設定xml解析器,0代表預設解析器     
  6. new CEGUI::System( renderer, 0, script_module );   

現在CEGUI::System已經被建立,指令碼模組也被指定了。此時,LuaScriptModule的建構函式自動為我們建立了一個lua_State。你也可以傳遞一個lua_State*到LuaScriptModule的建構函式中來使用自己的lua_State。

如果你在初始化指令碼中用到自訂函數,你就需要這麼做。代碼如下:

 
  1. ...     
  2. lua_State* s = your_lua_state;     
  3. CEGUI::LuaScriptModule* script_module = new CEGUI::LuaScriptModule(s);     
  4. ...   

初始化/退出 指令碼

CEGUI支援一個設定檔。它的檔案名稱是CEGUI::System的建構函式的一個選擇性參數。預設為“cegui.config”。

通過設定此設定檔,你可以控制在系統建立和銷毀的時候是否執行一個指令碼。設定檔的內容類別似這樣:

 
  1. <?xml version="1.0" ?>     
  2. <CEGUIConfig     
  3.     InitScript="../datafiles/scripts/init_script.lua"     
  4.     TerminateScript="../datafiles/scripts/exit_script.lua"     
  5. />   

init_script.lua是在系統初始化時候將要被執行的Lua指令碼檔案。內容可以是這樣:

擷取CEGUI singletons  

 
  1. local logger = CEGUI.Logger:getSingleton()     
  2. logger:logEvent( ">>> Init script says hello" )     
  3. --logger:setLoggingLevel( CEGUI.Informative )    

為我們要使用的singletons建立相應的局部變數非必須)  

 
  1. local system    = CEGUI.System:getSingleton()     
  2. local fontman   = CEGUI.FontManager:getSingleton()     
  3. local schememan = CEGUI.SchemeManager:getSingleton()    

載入schemes  

 
  1. schememan:loadScheme( "../datafiles/schemes/TaharezLook.scheme" )     
  2. schememan:loadScheme( "../datafiles/schemes/WindowsLook.scheme" )    

載入預設字型  

 
  1. local font = fontman:createFont( "../datafiles/fonts/Commonwealth-10.font" )    

設定預設滑鼠游標  

 
  1. system:setDefaultMouseCursor( "TaharezLook","MouseArrow" )     
  2.      
  3. logger:logEvent( "<<< Init script says goodbye" )   

並不一定要同時提供初始化和退出指令碼,但是,假如你在初始化指令碼中申請了全域使用的儲存空間,那你就要在退出指令碼中釋放它或者在其它合適的地方)。

小結:如何在CEGUI中使用Lua指令碼入門學習的內容介紹完了,希望通過本文的學習能對你有所協助!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.