我已经构建了一个简单的游戏引擎,其中玩家和敌人类只是对象。
我想让它们成为精灵,以便我可以检查碰撞并更好地管理它们,但我似乎找不到任何关于如何做到这一点的好例子......
我已经将玩家和敌人类扩展到扩展pygame.sprite.Sprite
类。
但是当我检查两者之间的碰撞时,
它说这两个类需要rects
(矩形)。
我不知道如何做到这一点......
Sprite 是对象,您需要的所有内容都已作为字段包含在 sprite 类中。您需要明确设置精灵的边界矩形。
来自 pygame 文档:
pygame.sprite.spritecollide 在组中查找与另一个 Sprite 相交的 Sprite pygame.sprite.spritecollide(sprite, group, dokill, collided = None): return Sprite_list
返回一个列表,其中包含一个组中与另一个 Sprite 相交的所有 Sprite。交点是通过比较每个 Sprite 的 Sprite.rect 属性来确定的。
因此,您需要将 sprite.rect 设置为您希望精灵碰撞所基于的矩形。通常,您可以使用精灵图像的大小作为碰撞矩形。
s.image = pygame.image.load("sprite.png").convert() #load a sprite image
s.rect = b.image.get_rect() # set collision rectangle