2016-09-04 146 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

謝謝你的朋友! –