現在、スプライトはキーが押されるたびに1ピクセルしか移動しません。左または右のキーを押しているときに配管工のスプライトを常に動かすにはどうすればよいですか?
while running:
setup_background()
spriteimg = plumberright
screen.blit(spriteimg,(x1, y1))
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
Elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_UP:
x1 = x1 + 0
y1 = y1 - 1
Elif event.key == pygame.K_DOWN:
x1 = x1 + 0
y1 = y1 + 1
Elif event.key == pygame.K_LEFT:
x1 = x1 -1
y1 = y1 + 0
Elif event.key == pygame.K_RIGHT:
x1 = x1 + 1
y1 = y1 + 0
pygame.display.flip()
clock.tick(120)
pygame.key.get_pressed を使用してそれを行うことができます。
例:
while running:
keys = pygame.key.get_pressed() #checking pressed keys
if keys[pygame.K_UP]:
y1 -= 1
if keys[pygame.K_DOWN]:
y1 += 1
このメイトを使用してください。うまく機能します。forループに入れてください。
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_a:
playerX_change = -0.1
if event.key == pygame.K_d:
playerX_change = 0.1
if event.type == pygame.KEYUP:
if event.key == pygame.K_a or event.key == pygame.K_d:
playerX_change = 0
playerX += playerX_change
player(playerX, playerY)
pygame.display.update()