CEGUI Lua脚本入门

本教程所列的代码是Lua脚本,它用到了CEGUI自0.4版本起所绑定的CEGUILua模块。这些代码片段可能没有多少实际用途,但它们足以展示CEGUI和Lua结合起来使用的可能性。 更改记录级别 local logger = CEGUI.Logger:getSingleton()--获取logger local lvl = logger.getLoggingLevel() --获取记录级别 if lvl < CEGUI.Insane then logger:setLoggingLevel(lvl +1) end 此代码:每次增加记录级别一个等级直到到达Insane级别. 载入一个Scheme CEGUI.SchemeManager:getSingleton():loadScheme("../datafiles/scheme/TaharezLook.scheme") 此代码:载入了TaharezLook.scheme. 简单的界面 -- 创建GUI sheet local sheet = CEGUI.WindowManager:getSingleton():createWindow( "DefaultGUISheet","root"); CEGUI.System:getSingleton():setGUISheet(sheet) -- 然后,把它附着到系统中 -- 创建一个FrameWindow local fw = CEGUI.WindowManager:getSingleton():createWindow( "TaharezLook/FrameWindow","framewnd"); -- 把它附着到sheet上 sheet:addChildWindow(fw) -- 设置它的大小和位置 local sz = CEGUI.Size(0.5,0.5) local pos = CEGUI.Point(0.2,0.1) fw:setSize(sz) fw:setPosition(pos) -- 禁止用户改变大小 fw:setProperty("SizingEnabled","False") -- 使关闭按钮生效 fw:subscribeEvent("CloseClicked","fwCloseClicked") -- CloseClicked事件的处理函数 function fwCloseClicked(eventArgs) local we = CEGUI.toWindowEventArgs(eventArgs) CEGUI.WindowManager:getSingleton():destroyWindow(we.window) -- 销毁frame窗口 end 此代码:创建一个GUISheet,把它附着到System上。然后,创建一个FrameWindow,设置它的大小和位置,禁用更改大小属性并为CloseClicked事件绑定了事件处理函数。 类型转换的另一种方法 -- CloseClicked事件的处理函数 function fwCloseClicked(eventArgs) local we = tolua.cast(eventArgs,"CEGUI::WindowEventArgs") CEGUI.WindowManager:getSingleton():destroyWindow(we.window) -- 销毁frame窗口 end 此代码:展示了把EventArgs对象转换成WindowEventArgs类型的另一种方法。 载入一个layout local w = CEGUI.WindowManager:getSingleton():loadWindowLayout( "../datafiles/layouts/test.layout") CEGUI.System:getSingleton():getGUISheet():addChildWindow(w) 此代码:载入了一个layout并把返回的窗口添加到当前的GUISheet中。 弹出菜单 -- 我们将多次使用WindowManager对象 local wmgr = CEGUI.WindowManager:getSingleton() -- 设置菜单 local bar = wmgr:createWindow("WindowsLook/Menubar","the_menu_bar") bar:setSize(CEGUI.Size(1,0.1)) CEGUI.System:getSingleton():getGUISheet():addChildWindow(bar) -- 添加一个菜单项 local item = wmgr:createWindow("WindowsLook/MenubarItem","the_menu_bar_item") item:setText("Bar item") bar:addChildWindow(item) -- 添加一个弹出菜单到菜单项中 local pop = wmgr:createWindow("WindowsLook/PopupMenu","the_popup_menu") item:addChildWindow(pop) -- 添加一些菜单项到弹出菜单中 item = wmgr:createWindow("WindowsLook/PopupMenuItem","the_popup_menu_item_1") item:setText("Popup item 1") pop:addChildWindow(item) item = wmgr:createWindow("WindowsLook/PopupMenuItem","the_popup_menu_item_2") item:setText("Popup item 2") pop:addChildWindow(item) 此代码:创建了一个简单的菜单,并添加了一个包含两个子菜单的弹出式菜单到它上面。 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/pizi0475/archive/2010/03/28/5424996.aspx

你可能感兴趣的:(function,脚本,layout,System,lua,menu)