好的 - 我的程序中有兩隻烏龜。動畫發生了,在那裏他們碰撞在一起,但我想一個烏龜是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
謝謝,我會試試看! –