1

所以我正在 Pygame 中开发一个很小的 ​​2d 体素游戏,我希望你放置的块受到重力影响,但为了做到这一点..我需要一个能够“与自身”碰撞的实体(如在另一个本身)。这是碰撞代码:

for block in blocklist:
    if block.rect.colliderect(block.rect):
        exit()

exit() 只是为了验证事件何时返回正数,但不幸的是,每当我创建一个块时......它会检测到与自身的碰撞并退出。

我能做些什么来解决这个问题?

谢谢!-山姆

4

1 回答 1

3

您的示例只是根据自身检查列表中的第一个块 - 它总是会发生冲突。

您想针对列表中的每个其他块测试列表中的每个块:

for block in blocklist:
    if any(block.rect.colliderect(x.rect) for x in blocklist if x is not block):
        exit()
于 2013-09-23T02:17:19.827 回答