0

我尝试构建一个为 graphics.newImageSheet 生成帧列表的函数。我的函数打印看似正确的列表“1,2,3,4,5..”但 graphics.newImageSheet 拒绝它并出现以下错误:

WARNING: Sequence (fastRun) has an invalid index (0) that falls outside the rang
e of valid image sheet frame indices: 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 }
}
4

1 回答 1

2

不要在中使用字符串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-17T15:16:13.510 回答