Python 如何使用箭头键创建连续移动的矩形来开发snake?

Python 如何使用箭头键创建连续移动的矩形来开发snake?,python,Python,我试图用pygame在python中创建snake,但我不知道如何让蛇头在按下一个键的情况下不断移动 我尝试过使用while循环,但这只会导致程序冻结 run = True while run: pygame.time.delay(100) for event in pygame.event.get(): if event.type == pygame.QUIT: run = False keys = pygame.key.get

我试图用pygame在python中创建snake,但我不知道如何让蛇头在按下一个键的情况下不断移动

我尝试过使用while循环,但这只会导致程序冻结

run = True
while run:
    pygame.time.delay(100)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

    keys = pygame.key.get_pressed()

    if keys[pygame.K_LEFT] and snake_x > 0:
        snake_x -= snake_vel
    if keys[pygame.K_RIGHT] and snake_x < 500 - snake_vel:
        snake_x += snake_vel
    if keys[pygame.K_DOWN] and snake_y < 500 - snake_vel:
        snake_y += snake_vel
    if keys[pygame.K_UP] and snake_y > 0:
        snake_y -= snake_vel

    canvas.fill((0, 0, 0))
    snake = pygame.draw.rect(canvas, (0, 255, 0), (snake_x, snake_y, snake_width, snake_height))
    pygame.display.update()
run=True
运行时:
pygame.时间延迟(100)
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
运行=错误
keys=pygame.key.get_pressed()
如果键[pygame.K_左]和snake_x>0:
snake_x-=snake_级别
如果键[pygame.K_RIGHT]和snake_x<500-snake_等级:
snake_x+=snake_级别
如果键[pygame.K_向下]和snake_y<500-snake_水平:
snake_y+=snake_级别
如果键[pygame.K\u UP]和snake\u y>0:
蛇级
画布填充((0,0,0))
snake=pygame.draw.rect(画布,(0,255,0),(snake\u x,snake\u y,snake\u宽度,snake\u高度))
pygame.display.update()

到目前为止,蛇头只在按住其中一个箭头键时移动,但我希望它能随着一个箭头键的按下而不断移动,直到按下另一个箭头键为止

使用变量-如果按下一个键,则设置记录方向的变量。在每个循环中,如果未按下任何键,则保持变量方向。使用变量-如果按下键,则设置记录方向的变量。在每个循环上,如果未按下任何键,则继续沿变量方向运行。