生成图形 newImageSheet 动画的帧数。

我尝试编写一个函数来生成graphics.newImageSheet的帧列表。 我的函数打印出看起来正确的列表“1,2,3,4,5…”,但是graphics.newImageSheet会拒绝它并显示以下错误:

警告:序列(fastRun)具有无效的索引(0),超出了有效的图像表帧索引范围:1 <= index <= 9。

代码:

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 }
}
点赞
用户1605727
用户1605727

不要在 frames = {...} 中使用字符串,使用表格。

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 }
}
2013-07-17 15:16:13