cegui 7
- CEGUI::YourRendererOfChoice* renderer = new YourRendererOfChoice;
- CEGUI::LuaScriptModule* script_module = new CEGUI::LuaScriptModule();
- // 第二个参数设置xml解析器,0代表默认解析器
- new CEGUI::System( renderer, 0, script_module );
现在CEGUI::System已经被创建,脚本模块也被指定了。此时,LuaScriptModule的构造函数自动为我们创建了一个lua_State。你也可以传递一个lua_State*到LuaScriptModule的构造函数中来使用自己的lua_State。
如果你在初始化脚本中用到自定义函数,你就需要这么做。代码如下:
- ...
- lua_State* s = your_lua_state;
- CEGUI::LuaScriptModule* script_module = new CEGUI::LuaScriptModule(s);
- ...
CEGUI支持一个配置文件。它的文件名是CEGUI::System的构造函数的一个可选参数。默认为“cegui.config”。
通过设置此配置文件,你可以控制在系统创建和销毁的时候是否执行一个脚本。配置文件的内容类似这样:
- -- 获取CEGUI singletons
- local logger = CEGUI.Logger:getSingleton()
- logger:logEvent( ">>> Init script says hello" )
- --logger:setLoggingLevel( CEGUI.Informative )
- -- 为我们要使用的singletons创建相应的局部变量(非必须)
- local system = CEGUI.System:getSingleton()
- local fontman = CEGUI.FontManager:getSingleton()
- local schememan = CEGUI.SchemeManager:getSingleton()
- -- 载入schemes
- schememan:loadScheme( "../datafiles/schemes/TaharezLook.scheme" )
- schememan:loadScheme( "../datafiles/schemes/WindowsLook.scheme" )
- -- 载入默认字体
- local font = fontman:createFont( "../datafiles/fonts/Commonwealth-10.font" )
- -- 设置默认鼠标光标
- system:setDefaultMouseCursor( "TaharezLook","MouseArrow" )
- logger:logEvent( "<<< Init script says goodbye" )
现在,你学习了怎样用Lua脚本初始化CEGUI。后续教程将更深入的讲解。