Turtle – 使用箭头键画线
在这篇文章中,我们将学习如何在Turtle图形中使用键盘(方向键)画线。我们先来讨论一下下面实现中使用的一些方法。
- wn.listen()。使用这个,我们就可以给键盘输入
- wn.onkeypress(func, “key”)。这个函数用于将func与按键的释放事件绑定。为了能够注册按键事件,TurtleScreen必须有焦点。
- setx(position):这个方法用来设置Turtle的第二个坐标为x,保持第一个坐标不变 这里,无论Turtle的位置是什么,它都会将x坐标设置为给定的输入,保持y坐标不变。
- sety(position):这个方法用来设置Turtle的第二个坐标为y,保持第一个坐标不变 这里,无论Turtle的位置是什么,它都会将y坐标设置为给定的输入,保持x坐标不变。
- ycor()。这个函数用来返回Turtle的当前位置的y坐标。它不需要任何参数。
- xcor()。这个函数用来返回Turtle的当前位置的x坐标。它不需要任何参数
- head.penup:把笔拿起来,这样Turtle在移动时就不会画出一条线。
8.head.hideturtle。这个方法是用来使Turtle隐身的。当你正在进行复杂的绘图时,这样做是个好主意,因为隐藏Turtle会明显加快绘图速度。这个方法不需要任何参数。 - head.clear:该功能用于从屏幕上删除Turtle的图画。
10.head.write。这个函数用来在当前的Turtle位置写文字。
步骤:
1.导入Turtle模块。
2.找一个屏幕来画画
3.为Turtle定义两个实例,一个是笔,另一个是头。
4.头部是为了告诉人们当前按的是哪个键
5.定义Turtle的上、下、左、右运动的函数。
6.在各自的上、左、右、下函数中,通过改变x和y坐标,设置箭头在上、左、右、下方向分别移动100个单位。
7.使用函数listen()来提供键盘输入。
8.使用onkeypress,以便注册按键事件。
以下是上述方法的Python实现:
# import for turtle module
import turtle
# making a workScreen
wn = turtle.Screen()
# defining 2 turtle instance
head = turtle.Turtle()
pen = turtle.Turtle()
# head is for telling which key is pressed
head.penup()
head.hideturtle()
# head is at 0,260 coordinate
head.goto(0, 260)
head.write("This is to tell which key is currently pressed",
align="center", font=("courier", 14, "normal"))
def f():
y = pen.ycor()
pen.sety(y+100)
head.clear()
head.write("UP", align="center", font=("courier", 24, "normal"))
def b():
y = pen.ycor()
pen.sety(y-100)
head.clear()
head.write("Down", align="center", font=("courier", 24, "normal"))
def l():
x = pen.xcor()
pen.setx(x-100)
head.clear()
head.write("left", align="center", font=("courier", 24, "normal"))
def r():
x = pen.xcor()
pen.setx(x+100)
head.clear()
head.write("Right", align="center", font=("courier", 24, "normal"))
wn.listen()
wn.onkeypress(f, "Up") # when up is pressed pen will go up
wn.onkeypress(b, "Down") # when down is pressed pen will go down
wn.onkeypress(l, "Left") # when left is pressed pen will go left
wn.onkeypress(r, "Right") # when right is pressed pen will go right
# this is to stop the turtle window from closing until the close button is clicked
turtle.mainloop()
输出: