Как заставить черепаху двигаться без использования turtle.goto(x,y)
, но turtle.speed(speed)
и turtle.heading(angle)
?Мне нужно это для игры, которую я делаю.Где мышь, я хочу заставить ее двигаться в этом направлении.Но когда я изменяю его, он переходит к тому месту, к которому потом приходит моя мышь:
import turtle
screen = turtle.Screen()
screen.title("Test")
screen.bgcolor("white")
screen.setup(width=600, height=600)
ship = turtle.Turtle()
ship.speed(1)
ship.shape("triangle")
ship.penup()
ship.goto(0,0)
ship.direction = "stop"
ship.turtlesize(3)
turtle.hideturtle()
def onmove(self, fun, add=None):
if fun is None:
self.cv.unbind('<Motion>')
else:
def eventfun(event):
fun(self.cv.canvasx(event.x) / self.xscale, -self.cv.canvasy(event.y) / self.yscale)
self.cv.bind('<Motion>', eventfun, add)
def goto_handler(x, y):
onmove(turtle.Screen(), None)
ship.setheading(ship.towards(x, y)) #this is where you use the x,y cordinates and I have seat them to got to x,y and set heading
ship.goto(x,y)
onmove(turtle.Screen(), goto_handler)
onmove(screen, goto_handler)
Если вы только setheading
и speed
, он просто поворачивается в этом направлении и не двигается.Если вы попробуете этот код, он сработает - просто я использую ship.goto(x, y)
, что заставляет его перейти на (x, y)
.Но когда вы меняете мышь, когда она движется, она сначала переходит к (x, y)
, а затем к вашей новой позиции мыши.Я просто хочу, чтобы она просто следовала за мышью, но я не могу этого сделать.