贪吃蛇游戏中的不断移动

问题描述 投票:0回答:1

我正在尝试制作一个贪吃蛇游戏,但我被困住了。我希望蛇不断移动。

但是,只有当我按下箭头时,蛇才会移动。如果我松开箭头,蛇就会停止移动。

这是我当前的代码:

import sys, pygame
window_size = ( 400, 400 )

white = ( 255, 255, 255 )

class Player():
  image = pygame.image.load( 'snikebodydraw.png')
  rect = image.get_rect()

player = Player()

screen = pygame.display.set_mode( window_size )

done = False

while not done:
  for event in pygame.event.get():
    if event.type == pygame.QUIT:
      sys.exit()

    if event.type == pygame.KEYDOWN:


      if event.key == pygame.K_LEFT:
        move = (-10, 0 )
        player.rect = player.rect.move(move)
      if event.key == pygame.K_RIGHT:
        move = ( 10, 0 )
        player.rect = player.rect.move(move)
      if event.key == pygame.K_UP:
        move = ( 0,-10 )
        player.rect = player.rect.move(move)
      if event.key == pygame.K_DOWN:
        move = ( 0, 10 )
        player.rect = player.rect.move(move)

  screen.fill( white )
  screen.blit( player.image, player.rect )

  pygame.display.flip()

我怎样才能改变这个代码,让蛇即使不按箭头键也能继续移动?

python pygame constants
1个回答
0
投票
import sys, pygame
window_size = ( 400, 400 )

white = ( 255, 255, 255 )

class Player():
  image = pygame.image.load( 'snikebodydraw.png')
  rect = image.get_rect()

player = Player()

screen = pygame.display.set_mode( window_size )

move = (0,0) # init movement

done = False

while not done:
  for event in pygame.event.get():
    if event.type == pygame.QUIT:
      sys.exit()

    if event.type == pygame.KEYDOWN:


      if event.key == pygame.K_LEFT:
        move = (-10, 0 )
      if event.key == pygame.K_RIGHT:
        move = ( 10, 0 )
      if event.key == pygame.K_UP:
        move = ( 0,-10 )
      if event.key == pygame.K_DOWN:
        move = ( 0, 10 )

  player.rect = player.rect.move(move)

  screen.fill( white )
  screen.blit( player.image, player.rect )

  pygame.display.flip()
© www.soinside.com 2019 - 2024. All rights reserved.