Pygame删除类中的所有对象

时间:2015-01-18 01:01:10

标签: python class pygame

我正在研究一个pygame项目,我想知道是否有一种简单的方法来删除类中的所有精灵。我在一个名为self.spritegroup的组中有所有精灵,所以我不能只删除组中的所有对象。是否有一个简单的快捷方式来删除类中的所有对象?

3 个答案:

答案 0 :(得分:1)

我想,这取决于你是否考虑过这个"简单":

for sprite in group:
    if isinstance(sprite, your_class):
        sprite.kill()

如果您愿意,您当然可以定义Group的子类,将此操作作为方法:

class MyGroup(pygame.sprite.Group):
    def clear_by_class(self, cls):
        for sprite in self:
            if isinstance(sprite, cls):
                sprite.kill()

答案 1 :(得分:0)

像这样使用pygame.sprite.group

class MySprite(pygame.sprite.Sprite):
    group = pygame.sprite.Group()

    def __init__(self):
        self.image = pygame.image.load('relative/path') # load image
        self.rect = self.image.get_rect() # create rect

        self.rect.topleft = pygame.mouse.get_pos() # set the location
        pygame.sprite.Sprite.__init__(MySprite.group) # add to group

然后删除并删除:

my_sprite = MySprite()
my_sprite.kill() # removes from group
del my_sprite # deletes object from memory (optional)

答案 2 :(得分:0)

您可以随时将新的群组对象重新分配给旧群组。

your_old_group = new_group

我不完全确定,但似乎杀死意味着删除特定的精灵。