python-3.x 海龟不向前移动,也消失时,创建

7qhs6swi  于 2023-11-20  发布在  Python
关注(0)|答案(1)|浏览(122)

我在代码中移动了跟踪器的位置,我看到乌龟被制作出来了,但在那之后它消失了,只有当我向左或向右移动它时才显示在屏幕上,它显示在屏幕上,也显示在屏幕上,但它不会自己向前移动。
请帮助我,我也试过使用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()

字符串

j7dteeu8

j7dteeu81#

我已经弄明白了。问题是,我没有使用任何延迟时,每次while循环执行。块走出屏幕,使它看起来像什么都没有发生,只有黑色屏幕显示。
为此,我在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 )

字符串

相关问题