2016-09-04 6 views
1

Я создаю игру OOP в SDK Corona, используя метатеги, и у меня проблемы с моим кодом.Ошибка 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» из файла «hero.lua»: 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

Thank you friend! –

Смежные вопросы