3つのオブジェクト(赤、緑、青)を別々の列に作成しようとしましたが、重複しないようにしてください。それで、どういうわけか、私はそれを探して、他の列の色をチェックし、残っているものを置きます。青と赤がすでに起動されている場合 コロナSDK
だから、最後の列はは、私は、テーブル内の特定の順序を指定する必要がある場合、その後、毎回私は産卵私はちょうどその中からランダムな順序を選択するなどのグリーンになりますテーブル、またはそこに良い方法はありますか?
乾杯
3つのオブジェクト(赤、緑、青)を別々の列に作成しようとしましたが、重複しないようにしてください。それで、どういうわけか、私はそれを探して、他の列の色をチェックし、残っているものを置きます。青と赤がすでに起動されている場合 コロナSDK
だから、最後の列はは、私は、テーブル内の特定の順序を指定する必要がある場合、その後、毎回私は産卵私はちょうどその中からランダムな順序を選択するなどのグリーンになりますテーブル、またはそこに良い方法はありますか?
乾杯
色のリストを作成してシャッフルすることができます。次のようなものがあります。
math.randomseed(os.time())
local colors = {
{ 1,0,0 }, -- red
{ 0,1,0 }, -- green
{ 0,0,1 }, -- blue
}
local function shuffleTable(t)
local rand = math.random
assert(t, "shuffleTable() expected a table, got nil")
local iterations = #t
local j
for i = iterations, 2, -1 do
j = rand(i)
t[i], t[j] = t[j], t[i]
end
end
shuffleTable(colors)
local px = display.contentCenterX
local py = display.contentCenterY - 200
for i = 1, #colors do
local rect = display.newRect(px, py + 100 * i, 200, 100)
rect.fill = colors[i]
end
色は必ず1回のみ使用するようにしてください。いつ、どのようにしてそれを行うのは完全に無関係です。
もちろん、オブジェクトをランダムに作成することは、使用できないものを作成するリスクがあるため、あまり効率的ではありません。
3つの異なるオブジェクトを作成し、毎回無作為に1つを削除するか、ランダムな色を使用してオブジェクトを生成するか、カラーリストから削除するのが最適です。
その後、オブジェクトは最終的に破棄されます。私は彼らが特定の地点に達すると、彼らは破壊され、新しいR/G/Bブロックが生まれると付け加えるべきです。なぜ私は3つのランダムなオブジェクトを言ったのか分からない。私が意味したのは、3つのオブジェクトが3つのソリッドカラーで作成されていて、3つの行に同じ色が欲しくないということです –
テーブルに使用されている色を追加し、新しいオブジェクトを生成するときは、テーブルに最初に存在するかどうかを確認します。選択された色が存在する間、新しい色を選択します。存在しない場合は、生成します。 –
それはうまくいくように聞こえますが、3色の表示オブジェクトが破棄されたら、どのように再ループするのですか?私は再びテーブルからそれらを削除する必要がありますか? @Brett、uh-huh。 –
そして、1つだけ残して残っているリロールを取得し、その最後の数字を打つまで管理し直すまで、再チェックしてください。 –