使用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
相关产品推荐
相关产品推荐

