我正在使用 turtle 模块编写贪吃蛇游戏,但是当我将这一行添加到我的代码中时,turtle 屏幕和 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()
我认为我们需要更多地了解您所说的“崩溃”是什么意思。如果你的意思是一切都冻结了,那就是你写的代码。介绍
tracer()
后,您需要为希望用户看到的每个更改提供update()
。但是您的循环中没有任何 update()
调用,因此所有内容在视觉上都保持循环之前的状态。如果你想看到段移动,你需要做这样的事情:
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 turtle in range(3):
turtle = Turtle('square')
turtle.color('white')
turtle.penup()
turtle.setx(x)
x -= 20
segments.append(turtle)
screen.update()
game_is_on = True
while game_is_on:
for segment in segments:
segment.forward(20)
screen.update()
screen.exitonclick() # never reached
如果您的意思是“崩溃”是指 Python 退出回到操作系统,那么您需要描述运行此代码的环境。
我有这个确切的问题,如您所描述的那样崩溃。解决方案是什么?!