如何在CEGUI中使用Lua脚本入门学习

移动开发 iOS
如何在CEGUI中使用Lua脚本入门学习是本文要介绍的内容,主要是来学习lua脚本语言在CEGUI如何来使用,不多说,具体内容来看本文详解。

如何在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脚本入门学习的内容介绍完了,希望通过本文的学习能对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-08-23 09:56:52

UnicodeLua

2011-08-25 09:55:27

2022-11-23 08:14:42

bash 脚本test 命令

2023-04-04 07:52:26

RedisLua脚本

2022-04-01 15:39:13

机器学习让孩子们软件交付

2021-03-14 09:28:24

Linux Shell脚本

2022-12-22 20:47:01

脚本循环结构

2022-10-09 10:18:44

LinuxShell脚本

2011-08-25 10:40:21

Lua游戏

2011-08-24 10:32:03

LuaPlusC++Lua

2021-01-13 09:40:26

Linuxexport命令

2011-08-22 16:59:28

Lua

2022-03-30 09:32:32

BashtestLinux

2011-08-22 18:08:09

Lua脚本

2019-09-16 19:00:48

Linux变量

2020-11-30 11:55:07

Docker命令Linux

2020-04-09 10:18:51

Bash循环Linux

2014-07-02 09:47:06

SwiftCocoaPods

2021-03-09 07:27:40

Kafka开源分布式

2015-08-27 09:46:09

swiftAFNetworkin
点赞
收藏

51CTO技术栈公众号