Pygame | 9 – 精灵的统一管理

用于保存和管理多个Sprite对象的容器类。

创建Group实例

g1 = pygame.sprite.Group()

add方法

g1.add(*sprites) -> None

向此组添加任意数量的Sprite。 这只会添加尚未成为该组成员的Sprite。

update方法

g1.update(*args) -> None

在组中的所有Sprite上调用update()方法。

基础Sprite类有一个更新方法,它接受任意数量的参数并且什么也不做。

传递给Group.update()的参数将传递给每个Sprite。

无法从Sprite.update()方法获取返回值。

draw()方法

g1.draw(Surface) -> None

将包含的Sprite绘制到Surface参数。 这使用源表面的Sprite.image属性和位置的Sprite.rect。

对精灵组中的每一个精灵依次调用surface.blit()

g1不会以任何顺序保留精灵,因为绘制的顺序是任意的。

值得一提的是,除非自己写,原生的Sprite模块并没有draw方法,因此很难被写在屏幕上

因此Group的draw方法显得异常的好用

AbstractGroup类中对其的定义:

clear()方法

g1.clear(Surface_dest, background) -> None

删除最后一次Group.draw()调用中使用的Sprite。

通过用背景填充绘制的Sprite位置来清除目标Surface。

背景通常是与目标Surface相同尺寸的Surface图像。 但是,它也可以是一个带有两个参数的回调函数:目的地Surface和要清除的区域。 每次清除后,将调用几次背景回调函数。

发表评论