pygame编组(精灵组)Group中的常用方法介绍

Posted huwt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pygame编组(精灵组)Group中的常用方法介绍相关的知识,希望对你有一定的参考价值。

说明:

1.以下所用的Group均为Group类的对象实例

2.Group类是对AbstractGroup类的继承

sprite.py文档中描述如下:

class Group(AbstractGroup):
    """container class for many Sprites

    pygame.sprite.Group(*sprites): return Group

    A simple container for Sprite objects. This class can be subclassed to
    create containers with more specific behaviors. The constructor takes any
    number of Sprite arguments to add to the Group. The group supports the
    following standard Python operations:

        in      test if a Sprite is contained
        len     the number of Sprites contained
        bool    test if any Sprites are contained
        iter    iterate through all the Sprites

    The Sprites in the Group are not ordered, so the Sprites are drawn and
    iterated over in no particular order.

    """
    def __init__(self, *sprites):
        AbstractGroup.__init__(self)
        self.add(*sprites)

 

 

方法一:Group.draw(surface)

说明:对精灵组中的每一个精灵依次调用surface.blit(),依次将精灵组中的精灵绘制在surface上

AbstractGroup类中对其的定义:

    def draw(self, surface):
        """draw all sprites onto the surface

        Group.draw(surface): return None

        Draws all of the member sprites onto the given surface.

        """
        sprites = self.sprites()
        surface_blit = surface.blit
        for spr in sprites:
            self.spritedict[spr] = surface_blit(spr.image, spr.rect)
        self.lostsprites = []

 

方法二:Group.update()

说明:对精灵组中的每一个精灵依次调用update()方法,并且update()方法需要自己在自己定义的精灵类中去实现

AbstractGroup类中对其的定义:

 

    def update(self, *args):
        """call the update method of every member sprite

        Group.update(*args): return None

        Calls the update method of every member sprite. All arguments that
        were passed to this method are passed to the Sprite update function.

        """
        for s in self.sprites():
            s.update(*args)

 

以上是关于pygame编组(精灵组)Group中的常用方法介绍的主要内容,如果未能解决你的问题,请参考以下文章

Python-项目实战--飞机大战-碰撞检测

pygame精灵组和读取图片

pygame之精灵对象和精灵组

如何检测何时单击矩形对象、图像或精灵

pygame之精灵碰撞检测

浅谈pygame.sprite的精灵碰撞