Corona: 加载模块出错

我正在使用 metatables 在 Corona SDK 中创建一个面向对象的游戏,但是我的代码出了一些问题。

这是我的 main.lua 文件内容:

-----------------------------------------------------------------------------------------
--
-- main.lua
--
-----------------------------------------------------------------------------------------

-- 在这里写你的代码

local hero = require("hero")
local environment = require("environment")
local obstacle = require("obstacle")

local player = hero.new("Billy", 0, 10)

这是我的 hero.lua 类文件内容:

local hero = {}
local hero_mt = {_index = hero}

--构造函数

function hero.new (name, positionX, positionY)
    local newHero = {
        name = name
        positionX = positionX or 0
        positionY = positionY or 0
    }

    return setmetatable( newHero, herp_mt )

function hero:Jump(amount)

end

我收到的错误信息如下:

从文件 'hero.lua' 加载模块出错: hero.lua:14 期望 '}'(在第 12 行的 '{' 相对应的位置)附近的 'positionX'。

我遵循了这个网站使用的相同语法,但仍然不起作用。您有什么想法吗?

点赞
用户1381216
用户1381216

你在声明 newHero 表时缺少逗号。所有表都必须以逗号分隔其属性。更多信息请参见 documentation。最后一个元素也可以有逗号。

local newHero = {
    name = name,
    positionX = positionX or 0,
    positionY = positionY or 0,
}

你还需要为函数 hero.new() 添加一个结束的 end,并在你的 hero 文件最后返回英雄表,像这样:return hero,这样你才能在主文件中实际调用 hero.new()

2016-09-04 18:34:04