Наследование Lua - вызов метода на супер - PullRequest
3 голосов
/ 12 января 2012

Я использую cocos2d-x [привязку lua] для переноса своей игры cocos2d [target-c], и у меня было несколько классов подклассов.Например, у меня есть подкласс CCScene [не имеет значения, что он делает], который имеет метод onEnter.В моем подклассе, KCCScene, у меня также был onEnter, и там я назвал [super onEnter].

Так что я прочитал довольно много документов, описывающих наследование в Lua, но я никогда не видел вызова метода super.

Возможно ли это сделать?Если да, то как мне сделать что-то вроде super: onEnter ()?

Спасибо

1 Ответ

7 голосов
/ 12 января 2012

Это действительно зависит от того, каким образом вы делаете OO. Некоторые libs обеспечивают "из коробки" способ делать супер, другие нет. Я не знаком с Cocos2d-x, но думаю, что у него его нет.

Способ достижения этого заключается в непосредственном использовании суперкласса, например:

function KCCScene:onEnter()
  doThis()
  CCScene.onEnter(self)
  doThat()
end

Это должно работать со всеми библиотеками, выполняющими OO, включая Cocos2d-x. Однако вы теряете красивый синтаксис ":" и вам необходимо включить явный параметр "self".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...