Inheritance 超线程上的Lua继承调用方法
我正在使用cocos2d-x[lua binding]来移植我的cocos2d[objective-c]游戏,我几乎没有子类。 例如,我有一个CCScene的子类[nevermind what it's],它有一个onEnter方法。 在我的子类kcscene中,我还有一个onEnter,在那里我称为[super onEnter] 所以我已经阅读了很多描述Lua继承的文档,但是我从来没有见过对super方法的调用 有可能吗? 如果是,我应该如何做super:onEnter()之类的事情Inheritance 超线程上的Lua继承调用方法,inheritance,lua,Inheritance,Lua,我正在使用cocos2d-x[lua binding]来移植我的cocos2d[objective-c]游戏,我几乎没有子类。 例如,我有一个CCScene的子类[nevermind what it's],它有一个onEnter方法。 在我的子类kcscene中,我还有一个onEnter,在那里我称为[super onEnter] 所以我已经阅读了很多描述Lua继承的文档,但是我从来没有见过对super方法的调用 有可能吗? 如果是,我应该如何做super:onEnter()之类的事情 谢谢这真
谢谢这真的取决于你做OO的具体方式。一些LIB提供了一种“开箱即用”的超级方式,而其他LIB则没有。我不熟悉Cocos2d-x,但我认为它没有 实现这一点的方法是直接使用超类,如下所示:
function KCCScene:onEnter()
doThis()
CCScene.onEnter(self)
doThat()
end
这应该适用于所有执行OO的lib,包括Cocos2d-x。但是,您丢失了nice“:”语法,需要包含一个显式的“self”参数。在Lua中,您没有标准的OO库。您可以使用Lua提供的工具实现一个,但它的工作方式以及它的功能完全取决于手头的实现。我建议你看看绑定的文档,看看它们提供了什么API。我不想使用任何库。只想使用元表等,您已经在使用一个库,即这些cocos2d-xlua绑定。我只是想建议大家看看OOP Lua API cocos2d提供的功能。我可能是在虚张声势,对一个两年前的问题发表评论,但有人能帮我解释一下为什么点符号法,即-CCScene.onEnter(self)在这里起作用,而分号符号,即-CCScene:onEnter()不起作用吗?我试过这两种风格,点符号似乎是必要的,但我认为这两种风格是完全相同的,分号只是语法上的糖?啊哈,我现在明白了。请忽略前面的内容。