好的 - 我的程序中有两只乌龟。动画发生了,在那里他们碰撞在一起,但我想一个乌龟是ontop的其他的:Python Turtle Graphics - 将乌龟带到前面
所以,我的问题是 - 如何做到这一点 - 有一个简单的代码行如:turtle.front()
,如果不是它是什么?
好的 - 我的程序中有两只乌龟。动画发生了,在那里他们碰撞在一起,但我想一个乌龟是ontop的其他的:Python Turtle Graphics - 将乌龟带到前面
所以,我的问题是 - 如何做到这一点 - 有一个简单的代码行如:turtle.front()
,如果不是它是什么?
只需添加这turtle.py文件
def tofront(self, tobring):
newfront = tobring.clone()
tobring.ht()
return newfront
作品正确, 所以方法 - 返回前人的精力,你龟的新克隆,在所有其他龟类的顶部。 参数tobring - 这是你目前的龟
你可以使用这个在变形点焊程序或如果是这样把它放到turtle.py文件 ,不要忘了将它添加到(你想要把到前一个)命令列表, - _tg_turtle_functions
_tg_turtle_functions = ['back', 'backward', 'begin_fill', 'begin_poly', 'bk',
'circle', 'clear', 'clearstamp', 'clearstamps', 'clone', 'tofront', 'color',
我做到了克隆命令后
希望这将帮助你
这个解决方案每次调整分层时都会创建一个新的乌龟,这些乌龟会四处闲逛(请参阅'turtle.turtles()')我已经为这个问题提供了一个简单的替代答案,它不涉及创建新的乌龟。 – cdlane
我在响应讨论这个简短地Make one turtle object always above another治所在拇指对于这个简单的情况是:
最后一个到达的是在上面
因为Python乌龟不优化掉零运动,一个简单的办法是将你想要的乌龟由零金额顶部:
import turtle
def tofront(t):
t.forward(0)
gold = turtle.Turtle("square")
gold.turtlesize(5)
gold.color("gold")
gold.setx(-10)
blue = turtle.Turtle("square")
blue.turtlesize(5)
blue.color("blue")
blue.setx(10)
turtle.onscreenclick(lambda x, y: tofront(gold))
turtle.done()
蓝龟重叠黄金之一。点击任何地方,情况将会颠倒。
尽管@ Bally的解决方案有效,但我的问题是它会在您每次调整分层时创建一个新的乌龟。而这些海龟不会消失。手表turtle.turtles()
成长。即使我的解决方案留下了乌龟撤消缓冲区的脚印,但我必须相信它消耗更少的资源。
我想如果你在绘制乌龟2后画乌龟1,黄色会自动呈现蓝色以上 – adil
谢谢,我会试试看! –