首页 > 解决方案 > 有没有办法删除组的特定内容?

问题描述

如何从 pygame 精灵组中删除内容?

我试过了:del self.game.treasures

我真的没有想到另一种方法来做到这一点。

if pg.sprite.spritecollideany(self, self.game.treasures):
    del self.game.treasures

我只是希望它会删除该组,但是发生了错误:

if pg.sprite.spritecollideany(self, self.game.treasures):
AttributeError: 'Game' object has no attribute 'treasures'

标签: pythonpygamepycharm

解决方案


如果你想删除一个pygame.sprite.Sprite对象并且你想从所有pygame.sprite.Groups 中删除它,那么你必须使用pygame.sprite.Sprite.kill

kill()

Sprite 将从包含它的所有组中删除。这不会改变 Sprite 的状态。调用此方法后,可以继续使用 Sprite,包括将其添加到 Groups。

例如

mysprite.kill()

如果要从组中删除所有精灵,则必须使用pygame.sprite.Group.empty

empty()

从此组中移除所有精灵。

例如

myspritegroup.empty()

推荐阅读