所以我正在Pygame做一个小小的2d voxxel游戏,我希望你所放置的块受到重力影响,但为了做到这一点......我需要一个实体能够与自己发生冲突“(就像在另一个人身上)。这是碰撞代码:
for block in blocklist:
if block.rect.colliderect(block.rect):
exit()
exit()只是验证事件何时返回正数,但不幸的是,每当我创建一个块时......它会检测到与自身的冲突并退出。
我该怎么做才能解决这个问题?
谢谢! -SAM
答案 0 :(得分:3)
您的示例只是检查列表中的第一个块与自身 - 它总是会发生冲突。
您希望测试列表中的每个块,与列表中的每个其他块进行对比:
for block in blocklist:
if any(block.rect.colliderect(x.rect) for x in blocklist if x is not block):
exit()