电晕:加载模块错误时出错

时间:2016-09-04 18:03:07

标签: module lua corona

我正在使用metatables在Corona SDK中创建OOP游戏,但我的代码遇到了一些问题。

这是我的main.lua文件:

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

-- Your code here

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}

--Constructor

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'时出错: hero.lua:14'}'预计(在第12行关闭'{')附近 '位X'

我遵循了此网站使用的相同语法(https://coronalabs.com/blog/2011/09/29/tutorial-modular-classes-in-corona/) 但仍然没有任何工作。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

声明newHero表时,您缺少逗号。所有表的属性必须用逗号分隔。有关详细信息,请参阅documentation。最后一个元素也可以有逗号。

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

你错过了一个结束end以及函数hero.new()并且需要在你的英雄文件的末尾返回英雄表,如下所示:return hero这样你就可以实际上在主文件中调用hero.new()