在CEGUI中使用Lua脚本入门
来源:互联网 发布:怎样联系网络黑市 编辑:程序博客网 时间:2024/05/16 12:26
CEGUI所使用的脚本是基于Lua5.0.2 和tolua++ 1.06pre2-1的.
界面的编写很大一部分可以通过脚本来实现.我们可以修改脚本而不必重新编译整个程序,
这就为我们省去了好多时间去设计界面.
目前的Lua脚本模块仍然处于初期的开发阶段。它支持绝大多数的内核系统、基层的窗口类,不过,对于某些特殊的控件目前只能通过属性系统(properties system)来设置。
Ok,我们开始吧!你需要有一定的CEGUI基础,比如初始化、创建窗口等,当然,还要有一定的Lua基础。
初始化
Lua脚本模块囊括了所有的管理类(manager classes),所以可以通过Lua脚本对CEGUI进行简单的初始化.例如:
#include "CEGUILua.h"
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”。
通过设置此配置文件,你可以控制在系统创建和销毁的时候是否执行一个脚本。配置文件的内容类似这样:
<?xml version="1.0" ?>
<CEGUIConfig
InitScript="../datafiles/scripts/init_script.lua"
TerminateScript="../datafiles/scripts/exit_script.lua"
/>
init_script.lua是在系统初始化时候将要被执行的Lua脚本文件。内容可以是这样:
-- 获取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。后续教程将更深入的讲解。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/bluekane/archive/2009/01/09/3738499.aspx
- 在CEGUI中使用Lua脚本入门
- 在CEGUI中使用Lua脚本入门
- cegui 7 在CEGUI中使用Lua脚本入门
- 如何在CEGUI中使用Lua脚本入门学习
- CEGUI Lua脚本入门
- 在OGRE中使用CEGUI
- 在游戏中使用“CEGUI”
- 在游戏中使用“CEGUI”
- 编写CEGUI脚本入门
- 在C++中使用LUA脚本
- 在Lua脚本中使用OpenGL函数
- 在Lua脚本中使用OpenGL函数
- 在lua脚本中使用unicode
- 在android中使用lua脚本
- cegui 9 编写CEGUI脚本入门
- 在DirectX 3D中使用CEGUI
- Cocos2d-x教程 Lua脚本(1) 如何在Cocos2d-x中使用Lua脚本
- Cocos2d-x教程 Lua脚本(1) 如何在Cocos2d-x中使用Lua脚本
- Lua语言的安装和编辑器的高亮、运行调试、定位出错行设置
- 本人发布一条收藏已久的秘方!震惊世界
- [转]Web 设计与开发终极资源大全(上)
- 鄂尔多斯---我来了
- 同类型的免费下载软件中, JDownloader的功能比FreeRapid Downloader功能要强很多
- 在CEGUI中使用Lua脚本入门
- 华表Cell应用 - 在IE中使用华表Cell插件 | #华表Cell #报表
- 自定义迭代标签
- QT的模态对话框与非模态对话框用法
- Lua消息处理入门
- 利用CEGUI和Lua实现框架
- [转]Web 设计与开发终极资源大全(下)
- SQL函数_百度百科
- 未来的妻子什么样的