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 に答える