パララックススクロールを行うコードを作成しようとしています。 "pieces"テーブルのすべてのスプライトは、空中に射撃してから、y = 200、x = random numberに位置をリセットする必要があります。後で、私は真の3D効果のために彼らがどのくらい速く動いているかに応じて、それらを小さくするか、または大きくするつもりです。私は所望の出力を得るipairs(スプライト、スプライト1、スプライトなど)内の「V」を印刷する場合ルアのテーブル内のオブジェクトに対してコードを反復処理するにはどうすればよいですか?
local speed = math.random(250,1000)
pieces = { "sprite", "sprite1", "sprite2", "sprite3", "sprite4",
"sprite5", "sprite6", "sprite7", "sprite8", "sprite9", "sprite10",
"sprite11", "sprite12", "sprite13", "sprite14", "sprite15" }
function update(self, dt)
for i, v in ipairs(pieces) do
p = go.get_position(v)
p.y = p.y + speed * dt
print(v)
if p.y > 800 then
p.y = -200
p.x = math.random(1,25) * math.random(10,35)*2
local speed = math.random(250,1000)
end
go.set_position(v)
end
end
ので、私は私が上記持っていることは働くだろうと思った:ここ
は素朴な試みです。それはしません。どんな助け?
まあ、あなたはループしたいと思っていました。あなたは、あなたが望むものと得るものについて説明しなければなりません。 「うまくいかない」というのは説明ではない。 'speed'を変更しないと、 'p.y> 800'ブランチの内部でローカル変数 'speed'を宣言しているので、新しいブランチ値はそのブランチの外側では使用されません。他の方法でうまくいかない場合は、説明する必要があります。 – Vlad
あなたはそうです。特定の問題があることを忘れてしまった。 p = go.get_position(v) エラーメッセージが表示されます。私はオブジェクトを正しく参照していないと信じています。 – josh
これは何ですか?私はあなたが 'pieces'配列で持っている名前で索引付けされたgame_objectsのコレクションだと仮定します。しかしそれはあなたのサンプルのどこにありますか?それは関数get_position()/ set_position()を持っていますか?それらはどう定義されましたか? – Vlad