Python 如何检查组中的精灵是否与其组中的其他精灵发生碰撞?
是否可以检查pygame组中的pygame精灵是否与其组中的其他精灵发生碰撞 以下是我目前的代码:Python 如何检查组中的精灵是否与其组中的其他精灵发生碰撞?,python,pygame,Python,Pygame,是否可以检查pygame组中的pygame精灵是否与其组中的其他精灵发生碰撞 以下是我目前的代码: def update(self, blocks): if not pygame.sprite.spritecollideany(self, blocks): self.rect.y += 1 此更新函数位于每个块中。您可以迭代精灵组,检查是否self!=首先阻塞,然后使用Rect.collide Rect进行碰撞检测 for block in blocks: if
def update(self, blocks):
if not pygame.sprite.spritecollideany(self, blocks):
self.rect.y += 1
此更新函数位于每个块中。您可以迭代精灵组,检查是否
self!=首先阻塞,然后使用Rect.collide Rect
进行碰撞检测
for block in blocks:
if self != block and self.rect.colliderect(block.rect):
# Do something for every collided block.
或者查看是否有精灵与self
发生碰撞
collided = any(self.rect.colliderect(block.rect)
for block in blocks if self != block)
您还可以为pygame.sprite.spritecollide
或spritecollideany
编写自定义的collided
回调函数
# Define this in the global scope or add it as a class method.
def collided(sprite, other):
return sprite != other and sprite.rect.colliderect(other.rect)
然后在主循环中,将collized
回调函数传递给spritecollizeany
:
if not pygame.sprite.spritecollideany(self, blocks, collided):