Pygame删除类中的所有对象

2024-04-25 22:21:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个pygame项目,我想知道是否有一个简单的方法可以删除一个类中的所有精灵。所有的精灵都在一个叫self.spritegroup,所以我不能只删除组中的所有对象。有一个简单的删除类中所有对象的快捷方式吗?在


Tags: 项目对象方法selfpygame精灵快捷方式spritegroup
3条回答

你总是可以把一个新的组对象重新分配给你的旧组。在

your_old_group=新_group

我不完全确定,但它似乎是为了删除特定的精灵。在

只需使用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

然后删除:

^{pr2}$

我想,这取决于你是否认为这个“简单”:

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

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

^{pr2}$

相关问题 更多 >