Reputation: 169
I try to build a function that generates frames list for graphics.newImageSheet. my function print seemingly correct list "1,2,3,4,5.." but graphics.newImageSheet reject it with the following error:
WARNING: Sequence (fastRun) has an invalid index (0) that falls outside the rang
e of valid image sheet frame indices: 1 <= index <= 9.
code:
function generateFrames(num)
NumFrames = num
frames = 1
for i=2, NumFrames, 1 do
frames = frames .. "," .. i
end
end
sheetData = { width=32, height=40, numFrames=9, sheetContentWidth=96, sheetContentHeight=120 }
mySheet = graphics.newImageSheet( "media/enemies/enemy-" .. type .. ".png", sheetData)
generateFrames(9)
print("frames: " .. frames)
sequenceData = {
{ name = "fastRun", frames={ frames }, time=1000, loopCount = 0 }
}
Upvotes: 0
Views: 306
Reputation: 4007
Don't use string in frames = {...}
, use table.
function generateFrames(num)
local frameTable = {}
NumFrames = num
frames = 1
for i=2, NumFrames, 1 do
table.insert(frameTable,i)
end
end
sheetData = { width=32, height=40, numFrames=9, sheetContentWidth=96, sheetContentHeight=120 }
mySheet = graphics.newImageSheet( "media/enemies/enemy-" .. type .. ".png", sheetData)
generateFrames(9)
print("frames: " .. frames)
sequenceData = {
{ name = "fastRun", frames=frames , time=1000, loopCount = 0 }
}
Upvotes: 2