我目前正在使用 luabind 绑定一个类(准确地说是 SFML 2.0 中的 sf::Time),并且我不断收到来自 luabind 的异常。这是我的绑定代码:
using namespace luabind;
module(L, "system")
[
class_<sf::Time>("Time")
.def(constructor<>())
.def("toSeconds", &sf::Time::asSeconds)
.def("toMilliseconds", &sf::Time::asMilliseconds)
.def("toMicroseconds", &sf::Time::asMicroseconds)
.def(self == other<sf::Time>())
.def(self < other<sf::Time>())
.def(self <= other<sf::Time>())
.def(self - other<sf::Time>())
.def(self + other<sf::Time>())
.def(self * float())
.def(self / float())
.scope
[
def("seconds", &sf::seconds),
def("milliseconds", &sf::milliseconds),
def("microseconds", &sf::microseconds)
],
...
我的lua代码是:
local t = system.Time.seconds(10)
sf::seconds 的签名是:
sf::Time sf::seconds(float)
我尝试在我自己的返回 sf::Time 的函数中包装对 sf::seconds 的调用,并且我也尝试使用 sf::Time* 作为返回值。无论如何,我不断收到错误消息。
有任何想法吗?
编辑:
我已经测试了这个类本身,我可以使用 system.Time() 在 Lua 中创建它,没问题。所有方法都可以正常工作,但 system.Time.seconds 和其他静态方法不起作用。