Слияние кода завершено, страница обновится автоматически
Вопрос: Как объявлять классы?
Ответ: Используйте class(), в framework/shared/functions.lua
local UserBase = class("UserBase")
— конструктор
function UserBase:ctor(username)
print("UserBase:ctor()")
self.username = username
end
function UserBase:sayHello()
print(string.format("%s say: Hello", self.username))
end
----------------------------------------
— Player унаследован от UserBase
local Player = class("Player", UserBase)
— конструктор
function Player:ctor(username, level)
— вызов метода суперкласса
Player.super.ctor(self, username)
print("Player:ctor()")
self.level = level
end
function Player:play()
print(string.format("%s play level %d", self.username, self.level))
end
----------------------------------------
local player1 = Player.new("dualface", 99)
player1:sayHello()
player1:play()
— вывод:
—
— UserBase:ctor()
— Player:ctor()
— dualface say: Hello
— dualface play level 99
**Вопрос: Как объявить классы, унаследованные от объекта C++?**
Ответ: Верните объект C++ в class(), в framework/shared/functions.lua
``` lua
local MyNode = class("MyNode", function()
— создать объект C++
return display.newNode()
end)
function MyNode:moveTo(x, y)
self:runAction(CCMoveTo:create(CCPoint(x, y)))
end
----------------------------------------
— шаг 1: создайте новый объект CCNode (C++)
— шаг 2: скопируйте методы MyNode в объект
— шаг 3: вызовите MyNode.ctor(), если существует
local node = MyNode.new()
node:moveTo(100, 100)
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )