使用 Corona SDK 的模块化课程

我正在尝试创建一个类,在屏幕上生成一些新的对象。我正在遵循这个教程。 我的目标是做这样的事情:

local box = box.new( "First", 0, 62 ) -- 在X=0,Y=62的屏幕上生成一个Box

这是我的类:

box.lua
local box = {}
local box_mt = {__index = box } -- 元表
function box.new (nome, x, y)
    local newbox = {
        local nome = display.newImageRect( "images/box.png", 210, 70 )
         newbox.x = x
         newbox.y = y
     }
     return setmetatable( newbox, box_mt )
}
end

到目前为止,仅仅通过在level1.lua上执行require("box"),我的游戏就崩溃了。 这就是错误:

无法解析错误消息:从文件'/Users/mc309bza/Desktop/Corona/Platform/level1.lua'加载模块'level1'失败:
/Users/mc309bza/Desktop/Corona/Platform/level1.lua:28: syntax error near 'function'

有什么想法吗?谢谢!

点赞
用户869951
用户869951

表格的封闭括号位置错误。使用:

local newbox = {}
local nome = display.newImageRect( "images/box.png", 210, 70 )
newbox.x = x
newbox.y = y

不要忘记删除 newbox 之后的 }。但是,如果您想要自动化创建盒子,应该使用一个函数,因为 display.newImageRect 已经是一个类。使用一个函数:

function myNewBox(x, y)
    local nome = display.newImageRect( "images/box.png", 210, 70 )
    nome.x = x
    nome.y = y
    ... other nome settings ...
    return nome
end
2014-03-13 13:39:36