如何在pygame中为精灵制作和指定矩形?

时间:2013-02-02 19:56:48

标签: python pygame sprite collision

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

我不知道该怎么做......

1 个答案:

答案 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