Pygame:测试实体是否与另一个实体发生碰撞?

时间:2013-09-23 01:47:05

标签: pygame

所以我正在Pygame做一个小小的2d voxxel游戏,我希望你所放置的块受到重力影响,但为了做到这一点......我需要一个实体能够与自己发生冲突“(就像在另一个人身上)。这是碰撞代码:

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

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

我该怎么做才能解决这个问题?

谢谢! -SAM

1 个答案:

答案 0 :(得分:3)

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

您希望测试列表中的每个块,与列表中的每个其他块进行对比:

for block in blocklist:
    if any(block.rect.colliderect(x.rect) for x in blocklist if x is not block):
        exit()