有没有办法从屏幕上删除乌龟?

时间:2020-06-27 16:59:45

标签: python python-turtle

我有以下代码:

answer = "ABC"
flag.goto(-999, -999)
while (answer.lower != 'y' or answer.lower != 'n'):
    print("You got the flag! Free play(y/n)?")
    answer = input("")
    if answer.lower == 'y':
        pass
    if answer.lower == 'n':
        return None

我正在尝试通过将乌龟flag添加到列表中,然后使用del(testlist[0])将其删除来删除乌龟,但这没有用。 输出为:

You got the flag! Free play(y/n)?
y
You got the flag! Free play(y/n)?
n
You got the flag! Free play(y/n)?

2 个答案:

答案 0 :(得分:1)

您的问题令人困惑,因为标题和文本只问一件事,
而示例代码和输出却显示出完全不同的情况。

让我们解决这个问题:

有没有办法从屏幕上删除乌龟?

通常turtle.hideturtle()会做您想要的。一旦被破坏,处置的唯一方法就是通过screen.clear()破坏所有 的动物。

(上面的变量turtle需要设置为Turtle()的实例,变量screen需要设置为Screen()的单数实例。

答案 1 :(得分:1)

您可以通过此documentation更好地了解海龟的可见性。

基本上,您可以使用turtle.hideturtle()turtle.ht()来使乌龟不可见。
但这并不意味着乌龟已被移除,因此它仍然占用内存。

可以呼叫turtle.Screen.clear(),但这会重置所有,甚至包括您可能想要保留的东西。

如果我要删除乌龟而不是隐藏它们,因为一遍又一遍地这样做会占用太多内存,那么我只会隐藏乌龟,而当程序需要另一只乌龟时,创建另一只乌龟的过程,只需取消隐藏隐藏的乌龟即可再次使用。