You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用tracer方法时Python Turtle图形不显示的问题求助

解决Turtle图形不显示的问题

你的代码有两个核心问题导致看不到乌龟:

1. 无限循环阻塞程序,退出逻辑无法执行

while game_on是无终止的循环,程序永远卡在循环里,window.exitonclick()根本没机会执行。而且乌龟步长设为80,会瞬间移动出屏幕范围,自然看不到任何图形。

2. 缺少移动延迟,动作太快无法感知

虽然你调用了window.update(),但没有给移动过程加延迟,乌龟的移动会在瞬间完成,视觉上完全捕捉不到。

修改后的代码:

from turtle import Turtle, Screen
import time

window = Screen()
window.setup(width=800, height=800)
window.bgcolor("Black")

position = [(-40, 0), (-20, 0), (0, 0)]
turtles = []
window.tracer(0)

for i in range(3):
    new_turtle = Turtle("square")
    new_turtle.color("white")
    new_turtle.penup()
    new_turtle.goto(position[i])
    turtles.append(new_turtle)
window.update()  # 初始化完成后统一刷新一次

game_on = True
while game_on:
    time.sleep(0.1)  # 添加延迟,控制移动速度
    for turtle in turtles:
        turtle.forward(10)  # 减小步长,避免瞬间出屏幕
        # 边界判断,让循环能正常结束
        if abs(turtle.xcor()) > 380:
            game_on = False
    window.update()  # 每次移动后统一刷新窗口

window.exitonclick()

修改说明:

  • 引入time.sleep(0.1)给循环加延迟,让乌龟移动速度变慢,肉眼可捕捉
  • 把步长从80改为10,同时添加边界判断,避免乌龟瞬间跑出屏幕,也让循环能正常结束
  • 初始化阶段仅需一次统一刷新,不用每次创建乌龟都调用update()
  • 循环内统一刷新窗口,比逐个乌龟刷新更高效

内容的提问来源于stack exchange,提问作者مصطفى أحمد MOSTAFA AHMED

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 18:43:25