2017-12-01 26 views
0

私はslither.ioという似たようなバージョンをPythonで作成するように指定されています。 Turtleを使用する予定でした。毎回クリックすることなくturtleをマウスに追従させるにはどうすればよいですか? これは、クリックしたときに、私はそれを行うだろうかですが、私はむしろ、クリックする必要はない。Python 3.6でカメをマウスに追いかける方法

from turtle import * 
turtle = Turtle() 
screen = Screen() 
screen.onscreenclick(turtle.goto) 
turtle.getscreen()._root.mainloop() 
+0

https://stackoverflow.com/questions/17864085/turtle-in-python-trying-to-get-the-turtle-to-move-to-the-mouse-click-position-aをご覧ください –

+1

@ChetanVasudevan、この記事では、OPが避けようとしているカメを移動することをクリックしています。 'onscreenclick()'スクリーンイベントハンドラの代わりに 'ondrag()' turtleイベントハンドラを望んでいるように聞こえます。 – cdlane

+0

@cdlane、はい、あなたの権利、私の間違い –

答えて

1

それへの鍵は亀にondrag()イベントハンドラを使用することです。短くて甘くない解:

ドラッグを開始した直後にクラッシュする可能性があります。大きな亀とのより良い解決策をドラッグすると、それが積み上げからイベントを防ぐために、ドラッグハンドラ内でドラッグハンドラをオフにします:あなたはをクリックしてカメ自体をドラッグする必要が

from turtle import Turtle, Screen 

def dragging(x, y): 
    yertle.ondrag(None) 
    yertle.setheading(yertle.towards(x, y)) 
    yertle.goto(x, y) 
    yertle.ondrag(dragging) 

screen = Screen() 

yertle = Turtle('turtle') 
yertle.speed('fastest') 

yertle.ondrag(dragging) 

screen.mainloop() 

注意だけではなく、クリックしてください画面のどこかに。左ボタンを押したままにマウスをたどるようにしたい場合は、my answer to Move python turtle with mouse pointerを参照してください。