Turtle库学习--动画控制与屏幕事件

turtle.delay(delay=None)

参数
delay – 正整型数

设置或返回以毫秒数表示的延迟值 delay。(这约等于连续两次画布刷新的间隔时间。) 绘图延迟越长,动画速度越慢

turtle.tracer(n=None, delay=None)

参数
n – 非负整型数

delay – 非负整型数

启用/禁用海龟动画并设置刷新图形的延迟时间
如果指定 n 值,则只有每第 n 次屏幕刷新会实际执行
如果调用时不带参数,则返回当前保存的 n 值。第二个参数设置延迟值

turtle.update()

执行一次 TurtleScreen 刷新。在禁用追踪时使用

执行以下代码进行观察

import turtle
from turtle import Turtle

turtle.delay(100)

for i in range(4):
    turtle.forward(100)
    turtle.left(90)
#turtle.tracer(n=2, delay=50)
turtle.done()

turtle.listen(xdummy=None, ydummy=None)

设置焦点到 TurtleScreen (以便接收按键事件)
使用两个 Dummy 参数以便能够传递 listen() 给 onclick 方法。

turtle.onkey(fun, key)

turtle.onkeyrelease(fun, key)

参数
fun – 一个无参数的函数或 None

key – 一个字符串: 键 (例如 “a”) 或键标 (例如 “space”)

绑定 fun 指定的函数到按键释放事件。如果 fun 值为 None,则移除事件绑定。
注: 为了能够注册按键事件,TurtleScreen 必须得到焦点

turtle.onkeypress(fun, key=None)

参数
fun – 一个无参数的函数或 None

key – 一个字符串: 键 (例如 “a”) 或键标 (例如 “space”)

绑定 fun 指定的函数到指定键的按下事件
如未指定键则绑定到任意键的按下事件

注: 为了能够注册按键事件,必须得到焦点

手动试试代码,做个简单的小游戏吧!!!

import turtle
from turtle import Turtle


def u():
    turtle.setheading(90)
    turtle.forward(100)


def d():
    turtle.setheading(-90)
    turtle.forward(100)


def l():
    turtle.setheading(-180)
    turtle.forward(100)


def r():
    turtle.setheading(0)
    turtle.forward(100)


turtle.shape("turtle")
turtle.onkey(d, "Down")
turtle.onkeypress(u, "Up")
turtle.onkey(r, "Right")
turtle.onkeypress(l, "Left")
turtle.listen()
turtle.done()

输入键盘中向上的→来控制

turtle.onclick(fun, btn=1, add=None)

turtle.onscreenclick(fun, btn=1, add=None)

参数
fun – 一个函数,调用时将传入两个参数表示在画布上点击的坐标。

btn – 鼠标按钮编号,默认值为 1 (鼠标左键)

add – True 或 False – 如为 True 则将添加一个新绑定,否则将取代先前的绑定

绑定 fun 指定的函数到鼠标点击屏幕事件。如果 fun 值为 None,则移除现有的绑定

turtle.ontimer(fun, t=0)

参数
fun – 一个无参数的函数

t – 一个数值 >= 0

安装一个计时器,在 t 毫秒后调用 fun 函数

import turtle
from turtle import Turtle


def goahead():
    turtle.forward(100)
    turtle.left(90)


turtle.shape("turtle")
turtle.ontimer(goahead, t=1000)
turtle.done()

turtle.mainloop()

turtle.done()

开始事件循环 - 调用 Tkinter 的 mainloop 函数
必须作为一个海龟绘图程序的结束语句
如果一个脚本是在以 -n 模式 (无子进程) 启动的 IDLE 中运行时不可使用
用于实现海龟绘图的交互功能。:

screen.mainloop()

猜你喜欢

转载自blog.csdn.net/hide_in_darkness/article/details/107633438