1

我已经构建了一个简单的游戏引擎,其中玩家和敌人类只是对象。
我想让它们成为精灵,以便我可以检查碰撞并更好地管理它们,但我似乎找不到任何关于如何做到这一点的好例子......
我已经将玩家和敌人类扩展到扩展pygame.sprite.Sprite类。
但是当我检查两者之间的碰撞时,
它说这两个类需要rects(矩形)。

我不知道如何做到这一点......

4

1 回答 1

2

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
于 2013-02-02T22:56:33.487 回答