我正在使用海龟模块编写一个贪吃蛇游戏,但是当我将这一行添加到我的代码中时,海龟屏幕和 Python 崩溃了:
turtle.tracer(0)
有人能帮我完成游戏吗?非常感谢
我的代码:
from turtle import Turtle, Screen, colormode screen = Screen() screen.bgcolor("black") screen.setup(width=600, height=600) screen.title("My Snake Game") screen.tracer(0) x = 0 segments = [] for turtle in range(3): turtle = Turtle("square") turtle.color("white") turtle.penup() turtle.goto(0-x, 0) x += 20 segments.append(turtle) game_is_on = True screen.update() while game_is_on: for segment in segments: segment.forward(20) screen.exitonclick()
在你的代码中,screen.tracer(0) 用于关闭海龟的自动更新,并允许你手动控制屏幕更新。然而,调用 screen.update() 后,你并没有重新开启屏幕更新,导致图形没有正确显示。此外,你创建的海龟对象名为 turtle,这和模块 turtle 的名称冲突,可能也导致问题。
screen.tracer(0)
screen.update()
turtle
你可以做如下修改来解决问题:
修改后的代码如下:
from turtle import Turtle, Screen screen = Screen() screen.bgcolor("black") screen.setup(width=600, height=600) screen.title("My Snake Game") screen.tracer(0) # 关闭自动更新 x = 0 segments = [] # 创建蛇的初始段 for _ in range(3): segment = Turtle("square") segment.color("white") segment.penup() segment.goto(0 - x, 0) x += 20 segments.append(segment) game_is_on = True while game_is_on: for segment in segments: segment.forward(20) screen.update() # 手动更新屏幕 screen.exitonclick()
segment
这样应该可以正常运行你的贪吃蛇游戏了。如果你有其他问题或进一步的修改需求,随时告诉我!