是否可以在Codea中使用继承?虽然我对 Lua 还很陌生,但通过一些快速的谷歌搜索,看起来做继承和多态的方法有点“涉及”。有什么技术可以安全地与 Codea 的 Lua 托管引擎一起使用吗?
这是一个简单的可运行测试,我正在尝试开始工作。我的超类:
Superklass = class()
function Superklass:init(x,y)
self.x = x
self.y = y
end
function Superklass:debug()
print(string.format("(%d, %d)", self.x, self.y))
end
一个子类:
Ship = class()
function Ship:init(x, y)
-- you can accept and set parameters here
print('ship:init() called')
self = Superklass(x,y) -- ???
print('attempting to call self:debug()')
self:debug() -- works! prints
print('ok!')
end
function Ship:draw()
print('ship:draw() called')
print('attempting to call self:debug()')
self:debug()
print('ok')
end
和程序入口点:
-- initial setup
function setup()
ship = Ship(HEIGHT/2, WIDTH/2)
end
-- called once every frame
function draw()
ship:draw()
end
这是运行的输出:
ship:init() called
attempting to call self:debug()
(384, 375)
ok!
ship:draw() called
attempting to call self:debug()
error: [string "Ship = class()..."]:16: attempt to call method 'debug' (a nil value)
Pausing playback
我敢肯定这是非常幼稚的——但我希望能在 Codea 的上下文中发挥作用的方向上的提示。