如何在pygame中创建并分配矩形给精灵?

1 投票
1 回答
8793 浏览
提问于 2025-04-17 14:33

我已经建立了一个简单的游戏引擎,里面有玩家和敌人这两个角色,它们都是对象。
我想把它们变成精灵,这样我就可以检查碰撞情况,并且更好地管理它们,但我找不到好的例子来实现这一点...
我已经把玩家和敌人的类扩展成了 pygame.sprite.Sprite 类。
但是当我检查这两个角色之间的碰撞时,
系统提示这两个类需要 rects(矩形)。

我不知道该怎么做...

1 个回答

3

精灵(Sprites)是一些对象,所有你需要的内容都已经包含在精灵类的字段里。你需要明确设置精灵的边界矩形。

来自pygame文档的内容:

pygame.sprite.spritecollide可以找到与另一个精灵相交的组中的精灵。这个函数的用法是:pygame.sprite.spritecollide(sprite, group, dokill, collided = None),返回一个精灵列表。

这个函数会返回一个列表,里面包含所有与另一个精灵相交的组中的精灵。相交是通过比较每个精灵的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

撰写回答