我创建了一个 XNA 应用程序,它利用 LuaInterface(通过 Lua)来控制应用程序本身的许多方面。
KeyboardState
我向 XNA 类(特别是对象)添加了扩展。问题是,如果我用 Lua 调用扩展函数,我会得到一个错误: 尝试调用字段 'KeyDown' (a userdata value .
这是我的 Lua 脚本:
Game.Updated:Add(function(t)
if Players.LocalPlayer.Controller.KeyboardState:KeyDown(KeyboardKey.W) then
print("W key down")
end
end)
这是我扩展类的模块:
Imports System.Runtime.CompilerServices
Module XNAExtensions
<Extension()> _
Public Function KeyDown(ByVal this As Microsoft.Xna.Framework.Input.KeyboardState, ByVal e As Integer) As Boolean
Return this.IsKeyDown(e)
End Function
End Module
我究竟做错了什么?