Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Inheritance 超线程上的Lua继承调用方法_Inheritance_Lua - Fatal编程技术网

Inheritance 超线程上的Lua继承调用方法

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()之类的事情 谢谢这真

我正在使用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()不起作用吗?我试过这两种风格,点符号似乎是必要的,但我认为这两种风格是完全相同的,分号只是语法上的糖?啊哈,我现在明白了。请忽略前面的内容。