gpt4 book ai didi

python - 使用 Pygame 从其自身的类方法中删除 Sprite 是否安全?

转载 作者:太空宇宙 更新时间:2023-11-04 03:58:11 25 4
gpt4 key购买 nike

我有一个派生的 sprite 对象,我想在它满足特定条件时删除它。从 sprite 类方法本身中使用格式“pygame.sprite.Sprite.kill()”删除它是否有任何问题?

class Pellet(pygame.sprite.Sprite):
def __init__(self, tank):
...
def update(self):
"""Update the position of bullets."""
self.rect.move_ip(self.xposc, self.yposc)
if offEdges(self.rect):
self.kill()

最佳答案

如果您只想明确删除 Sprite ,这应该可行,但在尝试删除对象时可能会出现两个问题,具体取决于您要如何使用它。如果你只从组中调用对象的函数,那么这将摆脱它。如果您从该类的特定实例调用函数,它将继续被调用。这就是为什么有时在这种情况下使用群组会更好,即使只有一个成员,因为他们会为您处理所有这些事情。如果你想删除类的实例,你可以调用

self.__del__()

但这可能会导致一些问题,例如当您尝试从该变量调用任何东西时,它现在将是未定义的。拥有组并使用 kill() 函数要好得多。另一个可能的问题是粗糙的,如果你不想从所有组中删除 Sprite 。如果是这种情况,您可以将其从各个组中单独删除。例如,如果它是一个渲染更新组,您可以这样做:

<groupname>.remove(self)

关于python - 使用 Pygame 从其自身的类方法中删除 Sprite 是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17164102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com