提问人:syed massab 提问时间:11/17/2023 最后编辑:toyota Suprasyed massab 更新时间:11/20/2023 访问量:34
不前进,在创建时也会消失
Turtle not moving forward and also disappears when created
问:
我在代码中移动了示踪剂的位置,我看到海龟被制造出来了,但之后它消失了,只有当我向左或向右移动它时,它才会显示在屏幕上,也会在屏幕上显示,但它不会自行前进。
请帮帮我,我也尝试过使用 ChatGPT,但它没有给我解决方案。
我已经开始编码将近 20 天了,所以我不擅长。
from turtle import Turtle,Screen
import time
scr=Screen()
scr.setup(600,600)
scr.bgcolor("black")
scr.title("Snake Xenzia")
snakes=[]
sp=[(0,0),(-20,0),(-40,0)]
scr.tracer( 0 )
for i in sp:
snake=Turtle()
snake.shape( "square" )
snake.color( "white" )
snake.pu()
snake.goto(i)
snakes.append(snake)
def lft():
for i in range( (len( snakes ) - 1), 0, -1 ):
new_x=snakes[ i - 1 ].xcor()
new_y=snakes[ i - 1 ].ycor()
snakes[ i ].goto( new_x, new_y )
snakes[ 0 ].left( 90 )
snakes[ 0 ].forward( 20 )
scr.update()
def rit():
for i in range( (len( snakes ) - 1), 0, -1 ):
new_x=snakes[ i - 1 ].xcor()
new_y=snakes[ i - 1 ].ycor()
snakes[ i ].goto( new_x, new_y )
snakes[ 0 ].right( 90 )
snakes[ 0 ].forward( 20 )
scr.update()
def clr():
snake.clear()
snake.home()
scr.listen()
scr.onkey( key="a", fun=lft )
scr.onkey( key="d", fun=rit )
scr.onkey( key="c", fun=clr )
c=True
while True:
scr.update()
for i in range( (len( snakes ) - 1), 0, -1 ):
new_x=snakes[ i - 1 ].xcor()
new_y=snakes[ i - 1 ].ycor()
snakes[ i ].goto( new_x, new_y )
snakes[ 0 ].forward( 20 )
scr.exitonclick()
答:
1赞
syed massab
11/17/2023
#1
我已经想通了。问题是我在执行循环时每次都没有使用任何延迟。方块从屏幕上消失了,看起来什么都没发生,只显示一个黑屏。
为此,我通过导入模块在 while 循环中引入了。time.sleep(0.1)
time
import time
while True:
scr.update()
time.sleep( 0.1 )
for i in range( (len( snakes ) - 1), 0, -1 ):
new_x=snakes[ i - 1 ].xcor()
new_y=snakes[ i - 1 ].ycor()
snakes[ i ].goto( new_x, new_y )
snakes[ 0 ].forward( 20 )
评论
while True: scr.update()
不是一个可靠的事件循环。这会尽可能地猛烈抨击 CPU,导致游戏在不同的机器上以不同的速度运行。首选准时器
。我建议用黑色格式化你的代码。