gpt4 book ai didi

python - Pygame - 如何实现可以相互碰撞的 block ?

转载 作者:太空宇宙 更新时间:2023-11-03 14:27:40 24 4
gpt4 key购买 nike

这些是随机放置的砖 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com