4

我目前正在使用 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 和其他静态方法不起作用。

4

0 回答 0