2016-11-20 1 views
0

パララックススクロールを行うコードを作成しようとしています。 "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 

ので、私は私が上記持っていることは働くだろうと思った:ここ

は素朴な試みです。それはしません。どんな助け?

+1

まあ、あなたはループしたいと思っていました。あなたは、あなたが望むものと得るものについて説明しなければなりません。 「うまくいかない」というのは説明ではない。 'speed'を変更しないと、 'p.y> 800'ブランチの内部でローカル変数 'speed'を宣言しているので、新しいブランチ値はそのブランチの外側では使用されません。他の方法でうまくいかない場合は、説明する必要があります。 – Vlad

+0

あなたはそうです。特定の問題があることを忘れてしまった。 p = go.get_position(v) エラーメッセージが表示されます。私はオブジェクトを正しく参照していないと信じています。 – josh

+0

これは何ですか?私はあなたが 'pieces'配列で持っている名前で索引付けされたgame_objectsのコレクションだと仮定します。しかしそれはあなたのサンプルのどこにありますか?それは関数get_position()/ set_position()を持っていますか?それらはどう定義されましたか? – Vlad

答えて

1

ここで私が理解した正しいコードです。誰かがこれを見てそれを説明する必要がある場合は、私に知らせてください。

local speed = math.random(250,1000) 
--pieces = { "sprite1", "sprite2", "sprite3", "sprite4", "sprite5", "sprite6", "sprite7", "sprite8", "sprite9", "sprite10", "sprite11", "sprite12", "sprite13", "sprite14", "sprite15" } 
pieces = { "go1", "go2", "go3" } 

function update(self, dt) 
    for i, v in ipairs(pieces) do 
     p = go.get_position(v) 
     p.y = p.y + speed * dt 
     if p.y > 800 then 
      p.y = math.random(200,800)/-1 
      p.x = math.random(1,25) * math.random(10,35) * 2 
      local speed = math.random(250,1000) 
      go.set_position(p, v) 
      else 
      go.set_position(p, v) 
     end 
    end 
    end 
+0

ヒント:ピーステーブルに文字列を格納する代わりに、オブジェクトのIDを格納することができます: 'pieces = {go.get_id(" go1 ")、go.get_id(" go2 ")、go.get_id(" go3 ")}'。 多くの反復を行う場合は、そうしなければ毎回行う必要のあるstringからid(ハッシュ)へのルックアップを保存します。 –

関連する問題