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