2015-07-01 4 views
-2

Я получаю следующее сообщение об ошибке от Corona SDK: попытка вызвать поле «ImageSheet» (нулевое значение) трассировку стека. Может кто-нибудь указать на ошибку?Lua - значение nil

local ISPar = { 
    width = 2541, 
    height = 264, 
    numFrames = 7 
} 
local ImageSheet = graphics.ImageSheet("Apus.png, ISPar") 

local ApusSequenceData = { 
    {name = "fly", frames {1,2,3,4,5,6,7}, time = 800, loopCount = 0} 
    } 

local Apus = display.newSrpite(ImageSheet, ApusSequenceData) 
Apus.x = display.contentWidth/2 
Apus.y = display.contentHeight/2 
Apus:play() 
+1

должен быть 'graphics.newImageSheet', также отсутствует' = 'для кадров ключевых в таблице. – ryanpattison

+1

также вам нужно исправить кавычки в ваших аргументах ('' Apus.png ", ISPar') и опечатку в' display.newSprite'. Избегайте использования капитализированных имен для переменных, поскольку они могут теневать имена классов и в противном случае являются нетрадиционными. – ryanpattison

ответ

0

Вы получили неправильное имя функции, оно должно было быть графическим .newImageSheet. Также вы неправильно устанавливаете кавычки при вызове. И после этого вы орфографическими ошибками newSprite

Этот код должен работать:

local ISPar = { 
    width = 2541, 
    height = 264, 
    numFrames = 7 
} 
local ImageSheet = graphics.newImageSheet("Apus.png", ISPar) 

local ApusSequenceData = {{name = "fly", frames = {1,2,3,4,5,6,7}, time = 800, loopCount = 0}} 

local Apus = display.newSprite(ImageSheet, ApusSequenceData) 
Apus.x = display.contentWidth/2 
Apus.y = display.contentHeight/2 
Apus:play() 
+0

Только должно быть «=» после кадров, иначе код будет идеальным. Танки. – DFrogBinder

+0

@DFrogBinder Ой, извините, что это одна ошибка, я не поймал LOL. Рад, что я смог помочь :) – warspyking