0

ループを介して1回のヒットで複数の長方形を追加しようとしていますが、コードは次のとおりです。

for i=1,7,1 do
   rec = rectangles.createRoundedRect(left, top, 100, 18, 6)
  physics.addBody(rec , "static", { density = 1.0, friction = 0.0, bounce = 0.2 } )
  left = left + 50
  top = top - 35
end

長方形は正常に追加されますが、ボディとしては扱われません(つまり、他のボディはそれらと衝突しません)。

コードの何が問題になっていますか?

4

3 に答える 3

1

(私は思う)それはあなたが物理エンジンに同じrecを何度も追加し続けるからです。これを試して:

rec = {}
for i=1,7,1 do
 rec[i] = rectangles.createRoundedRect(left, top, 100, 18, 6)
 physics.addBody(rec[i] , "static", { density = 1.0, friction = 0.0, bounce = 0.2 } )
 left = left + 50
 top = top - 35
end

そして、それが機能するかどうかを確認します。

于 2012-08-05T22:29:26.823 に答える
0

問題にはいくつかの原因が考えられます。a)ボックスが実際に物理エンジンに追加されていないことを確認します(physics.setDrawMode( "hybrid")でハイブリッド物理モードを有効にすることにより)。ボックスはあるかもしれませんが、オブジェクトフィルター(http://developer.coronalabs.com/forum/2010/10/25/collision-filters-helper-chartを参照)b)長方形に問題があります。 createRoundedRect(私はあなた自身の関数だと思います)は、作成されたオブジェクトを、他のオブジェクト(存在する場合)と同じグループではないグループに追加していません。コロナ物理学は、グループ間で作成されたオブジェクト間ではうまく機能しません。

于 2012-08-07T19:12:35.483 に答える
0

object:translate()使用するはずだったオブジェクトの移動に使用していた問題を解決しますobject:setLinearVelocity()

于 2012-10-14T04:52:23.513 に答える