对应源文件: object.lua
MiniExtend Object 主要是为 MiniExtend Event 和 MiniExtend UI 设定的。
目前 MiniExtend Object 内容较少,且主要以理解为主。
Object 的核心是一个叫 objid
的虚有值(在内部是局部变量), objid
默认为 0 。
在调用 MiniExtend 的一些函数时, objid
会作为游戏对象 id 参数(参数名形如 ...id
,如 playerid
) 的默认值。
在延时调用中是不会有正确的 objid
值的,特别是在 registerEvent()
的回调函数中要注意。
因为在发动延时调用后,回调函数会正常结束,然后会恢复 objid
的值,这时已经失去了理想的 objid
的值。
getObjectId()
函数返回
objid
的值。
setObjectId(objectid)
函数设置
objid
的值。objectid
:{integer}
要设置的objid
的值
对于UI.UIView:show([playerid])
这个函数,你可以不传递 playerid
参数调用该函数,这时 objid
将代替 playerid
参数。
在 registerEvent()
的回调中, objid
会被临时地设置为 param["eventobjid"]
。
以下代码使得当任意玩家进入游戏时,玩家会打开 uiview
界面。
Env.__init__()
-- 需替换为 UI 界面 id
local uiid = [[]]
uiview = UI.UIView:new(uiid)
-- 任意玩家进入游戏事件
registerEvent([[Game.AnyPlayer.EnterGame]], function(param)
-- objid 已被隐式地设置为 param.eventobjid
-- 等价于调用 uiview:show(getObjectId())
uiview:show()
end, uiid)