2017-12-01 3 views
0

파이썬에서 비슷한 버전의 slither.io을 만들도록 지정되었습니다. 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() 거북이 이벤트 핸들러를 원하는 것 같아요. – cdlane

+0

@cdlane, 예, 당신의 권리, 저의 실수 –

답변

1

그것의 핵심은 거북이에 ondrag() 이벤트 처리기를 사용하는 것입니다. 짧고별로 달콤하지 않은 솔루션 : 끌기를 시작하자마자 곧바로 충돌 할 가능성이있는 짧은 해결책 :

import turtle 
turtle.ondrag(turtle.goto) 
turtle.mainloop() 

큰 거북이와 더 나은 솔루션 드래그하고, 그 말뚝 박기에서 이벤트를 방지하기 위해 드래그 투수 내부의 드래그 핸들러를 해제합니다 : 당신이 클릭하고 거북 자체를 드래그해야

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을 참조하십시오.