水平移动Python Turtle而不更改标题

时间:2018-05-26 08:53:42

标签: python python-3.x turtle-graphics

我正在使用Python-3中的游戏,需要水平移动一个Turtle对象(AKA侧向)而不改变我的标题。 turtle.goto(x,y)turtle.setx(x) turtle.sety(y)无法工作,因为我想让对象在移动时显示,就像您turtle.fd(distance)时一样。

以下是我现在的代码:

import turtle 
turtle.speed('slowest')
turtle.lt(90)
turtle.fd(20)
turtle.rt(90)

使用此代码,乌龟转身,向前移动,然后转身。有没有办法让我可以侧身移动而不必转弯?

非常感谢! 欢迎任何评论!

1 个答案:

答案 0 :(得分:0)

  

turtle.goto(x,y)或turtle.setx(x)turtle.sety(y)因为我没有工作   希望移动时显示对象

你的前提是错误的 - 当所有这些操作移动时,乌龟会出现:

import turtle

turtle.speed('slowest')

turtle.sety(turtle.ycor() + 100)

turtle.done()

这会在保持水平航向的同时垂直移动乌龟。它没有传送,它与.forward()

具有相同的可见运动

但是,如果您有一些其他的理由不使用goto()setx()sety()等,并希望使用forward()backward()相反,我们可以做到这一点。乌龟光标有一个倾斜的概念,允许它在一个方向上看,而在另一个方向上移动:

import turtle

turtle.speed('slowest')

turtle.tracer(False)  # hide the heading change ...
turtle.setheading(90)
turtle.settiltangle(-90)  # ... until we can tilt it
turtle.tracer(True)

turtle.forward(100)

turtle.done()

我们可能会使用这种情况的一种情况是太空入侵者风格游戏,其中乌龟想面向窗户的顶部,但我们想要使用forward()backward()来控制其运动方面 - 在屏幕上:

""" Oversimplified Example """

from turtle import Turtle, Screen

screen = Screen()

turtle = Turtle('turtle', visible=False)
turtle.settiltangle(90)
turtle.penup()
turtle.showturtle()

screen.onkey(lambda: turtle.forward(10), "Right")
screen.onkey(lambda: turtle.backward(10), "Left")

screen.listen()

screen.mainloop()