Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在tkinter帆布中加速海龟_Python_Tkinter_Python Turtle - Fatal编程技术网

Python 如何在tkinter帆布中加速海龟

Python 如何在tkinter帆布中加速海龟,python,tkinter,python-turtle,Python,Tkinter,Python Turtle,我试图让乌龟移动得更快,我通常会用 import turtle as t t.speed(0) t.tracer(0,0) 但是,当我使用rawtull()将其放在画布中时,我不确定如何执行此操作 root = tk.Tk() #create root window #create turtle canvas canvas = tk.Canvas(root,width=500,height=500) canvas.pack() t = turtle.RawTurtle(canvas) t.

我试图让乌龟移动得更快,我通常会用

import turtle as t

t.speed(0)
t.tracer(0,0)
但是,当我使用rawtull()将其放在画布中时,我不确定如何执行此操作

root = tk.Tk() #create root window

#create turtle canvas
canvas = tk.Canvas(root,width=500,height=500)
canvas.pack()
t = turtle.RawTurtle(canvas)
t.ht()

这是我的密码。有人知道怎么做吗?

我对你的代码做了一些编辑。对于初学者,您需要使用
t=turtle.RawTurtle(canvas)
行之后的所有命令。然后需要在末尾添加一个
.mainloop()
函数

这将是您的最终代码:

将tkinter作为tk导入
root=tk.tk()#创建根窗口
进口海龟
#创建海龟画布
canvas=tk.canvas(根,宽度=500,高度=500)
canvas.pack()
t=海龟。生海龟(帆布)
t、 速度(1)
t、 前进(100)
t、 ht()
root.mainloop()
当速度设置为1时,这是输出:

当速度设置为0时,这是输出:


对GIF感到抱歉,希望这能有所帮助

首先,要么执行其中一项,要么执行另一项,而不是同时执行两项:

t.speed(0)
t.tracer(0,0)
speed(0)
aka
speed('faster')
为您提供最快的绘图动画。
跟踪器(0)
完全消除了绘图动画。它们不能相加

通过使用turtle的
TurtleScreen()
包装器,您可以在嵌入
画布的turtle中获得最大速度,即消除绘图动画:

import tkinter as tk
from turtle import TurtleScreen, RawTurtle

root = tk.Tk()
canvas = tk.Canvas(root, width=500, height=500)
canvas.pack()

screen = TurtleScreen(canvas)
screen.tracer(False)

turtle = RawTurtle(screen)

turtle.circle(100)

screen.tracer(True)
screen.mainloop()

尝试
t.speed(0)
t.getscreen().tracer(0,0)
。我已经尝试过
t.speed(0)
t.tracer(0,0)
,但都不起作用。当我使用
t.getscreen().tracer(0,0)
时,它会使程序崩溃。我没有这个问题。你是不是在t=turtle.RawTurtle(canvas)
一行之后叫它的?是的,我叫了。我刚才又尝试了一次,没有出现错误,也没有崩溃,但是当我执行
t.forward(100)
或任何其他turtle命令时,它不会移动。由于您已禁用
tracer
,您需要调用
t.getscreen().update()
来刷新屏幕。