0

映画のタイトルを文字画像として表示しています。たとえば、文字ごとに個別の画像を表示しています。次に、各文字をスペース/コンテナにドラッグできます。これはコンテナを表示するための私のコードです

posX = {}
posY = 124
px = 10
containers = {}
for i = 1, #letters do
    if(letters[i]==" ") then
        px = px + 10
        -- print(posX[i])
        -- table.remove(posX, posX[i])
    else
    posX[i] = px
    containers[i] = display.newImage( "Round1_blue_tileEnlarged 40x40.png",      posX[i],posY )
    px = px + 40
    end
end

ご覧のとおり、スペースをチェックしています。たとえば、バットマンの始まりがタイトルの場合、タイトルが1つの単語であれば問題ありませんが、スペースを追加すると、配列に別の要素が追加され、配置時にエラーが発生します。私のコンテナのオブジェクト。'if' imにスペースを追加するだけでわかりますが、これをテーブルposXの要素にしたくありません。

4

1 に答える 1

3

あなたの質問をよく理解しているかどうかはわかりませんが、ここで問題が発生します。iでインデックスとして使用していますposXi、スペースの場合でもforループによってインクリメントされます。その結果、テーブルに穴がposXできcontainersます。

あなたはいくつかの方法でそれを修正することができます、ここに些細なものがあります:

posX = {}
posY = 124
px = 10
containers = {}
local j = 1
for i = 1,#letters do
    if(letters[i]==" ") then
        px = px + 10
    else
        posX[j] = px
        containers[j] = display.newImage( "Round1_blue_tileEnlarged 40x40.png", posX[j],posY )
        px = px + 40
        j = j + 1
    end
end

#posXの代わりに使用することもできますj

于 2013-01-07T11:56:54.390 に答える