Python Turtle屏幕无显示 贪吃蛇初始蛇身绘制失效问题
问题原因
你代码里写了screen.tracer(0),这个参数会直接关掉turtle的自动屏幕刷新:所有创建图形、移动位置的绘制操作都会存在后台缓冲区,不会直接渲染到你看到的窗口上,所以不管是蛇身还是你手动建的Turtle对象都显示不出来。
修复方法
开了手动刷新模式之后,你需要在所有绘制操作完成后主动调用screen.update()才能把画面刷出来,同时还要加主循环保持窗口持续运行,不然程序跑完直接就退了。
修改后的主程序参考:
from turtle import Turtle, Screen from snake import Snake import time screen = Screen() screen.setup(width=600, height=600) screen.bgcolor("black") screen.title("SNAKE") screen.tracer(0) game_on = True snake = Snake() # 初始化完成后第一次刷新,显示初始蛇身 screen.update() while game_on: # 后续每次蛇移动、画面变动后都要调用update screen.update() # 加延迟控制蛇的移动速度,不然移动太快没法玩 time.sleep(0.1) # 点击窗口才退出,避免程序运行完直接关窗 screen.exitonclick()
- 你写的Snake模块代码本身没有逻辑问题,不需要修改
- 后续做蛇移动、食物生成的逻辑时,记得每帧更新完所有元素位置再调用
screen.update(),不然画面还是不会同步变化
内容的提问来源于stack exchange,提问作者Muri
相关产品推荐
相关产品推荐

