2016-09-04 103 views
1

我使用metatables在Corona SDK中创建了一个OOP游戏,并且在我的代码中遇到了一些麻烦。Corona:错误加载模块错误

这里是我的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行) 'positionX'

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

回答

3

在声明newHero表时缺少逗号。所有表都必须使用逗号分隔它们的属性。有关更多信息,请参阅documentation。最后一个元素也可以有逗号。

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

你缺少一个右end以及对功能hero.new(),需要在你的英雄文件的最后返回的英雄表,就像这样:return hero,这样你实际上可以在你的主文件中调用hero.new()

+0

谢谢你的朋友! –