2017-11-27 10 views
1

これらはランダムに配置されたレンガで、x軸に沿って、壁から壁まで左右に移動します。私はすべてのレンガが自分自身に衝突するようにしたいと思います。例えば、彼らのうちの1人が別のレンガを打った場合、speed-speedでなければなりません。Pygame - 互いに衝突するブロックを実装する方法は?

brick = [] 
for in range(50): 
    block = Brick() 
    brick.append(block) 

私のコードは以下の通りです:

if block.rect.colliderect(block.rect.colliderect): 
    block.speed *= -1 

答えて

1

あなたは、他のすべてのブロックで各ブロックのcolliderectを使用するには、ネストされたループを別のものを追加する必要があるだろう。また、2つのブロックインスタンスが同じオブジェクトblock is not other_blockでないかどうかを確認する必要があります。

for block in brick: 
    for other_block in brick: 
     if block is not other_block and block.rect.colliderect(other_block.rect): 
      block.speed *= -1 

また、2つのループの代わりにitertools.productを使用することもできます。

関連する問題