这些是随机放置的砖 block ,它们沿着 x 轴从一堵墙向左向右移动。我想让所有砖 block 都相互碰撞,例如,如果其中一个砖 block 撞到另一 block 砖 block ,则速度
必须为-speed
。
brick = []
for in range(50):
block = Brick()
brick.append(block)
我的代码如下:
if block.rect.colliderect(block.rect.colliderect):
block.speed *= -1
最佳答案
您必须添加另一个嵌套循环才能使用每个 block 与所有其他 block 的colliderect
。您还需要检查两个 block 实例是否不是同一个对象 block 不是 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
您还可以使用 itertools.product
而不是两个循环。
关于python - Pygame - 如何实现可以相互碰撞的 block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47510667/