Я бы хотел запустить приложение для непрерывного перемещения символа, пока нажата клавиша, этот код манипулирует отображаемым изображением только один раз при нажатии клавиши.
Я пробовал цикл while в надежде, что пока нажата клавиша, выполнить действие, но не повезло.программа повторяет цикл снова и снова, эффективно его сбивая.Я застрял, думая об этом, и это буквально сводит меня с ума.
ссылка, чтобы увидеть, что происходит: https://youtu.be/iuNmwgUqH4c
Я хочу, чтобы он ни разу не двигался, а продолжал двигаться, пока нажата клавиша.
#======
# Imports
#======
import pygame
import sys
#======
# Variables
#======
pygame.init()
Game_Over = False
WIDTH = 800
HEIGHT = 800
MSprites = [pygame.image.load(r"C:\Users\Damien Santiago\Desktop\Survival Game\Male Still ( Down ).png"),
pygame.image.load(r"C:\Users\Damien Santiago\Desktop\Survival Game\Male Walking ( Down ) F1.png"),
pygame.image.load(r"C:\Users\Damien Santiago\Desktop\Survival Game\Male Walking ( Down ) F2.png"),
pygame.image.load(r"C:\Users\Damien Santiago\Desktop\Survival Game\Male Standing Walking ( Left ).png"),
pygame.image.load(r"C:\Users\Damien Santiago\Desktop\Survival Game\Male Walking ( Left ) F1.png"),
pygame.image.load(r"C:\Users\Damien Santiago\Desktop\Survival Game\Male Walking ( Left ) F2.png"),
pygame.image.load(r"C:\Users\Damien Santiago\Desktop\Survival Game\Male Still ( Right ).png"),
pygame.image.load(r"C:\Users\Damien Santiago\Desktop\Survival Game\Male Walking ( Right ) F1.png"),
pygame.image.load(r"C:\Users\Damien Santiago\Desktop\Survival Game\Male Walking ( Up ) F1.png "),
pygame.image.load(r"C:\Users\Damien Santiago\Desktop\Survival Game\Male Walking ( Up ) F2.png"),
pygame.image.load(r"C:\Users\Damien Santiago\Desktop\Survival Game\Male Walking ( Up ).png"),
pygame.image.load(r"C:\Users\Damien Santiago\Desktop\Survival Game\Male Still ( Idle ).png")]
NAME = "Survival Game"
WHITE = (225,225,225)
CLOCK = pygame.time.Clock()
FPS = 60
Player_WIDTH = 150
Player_HEIGHT = 150
P_X = 400 - Player_WIDTH
P_Y = 400 - Player_HEIGHT
P_SPEED = 10
#======
# Initialization Code
#======
while not Game_Over:
CLOCK.tick(2)
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption(NAME)
screen.fill(WHITE)
screen.blit(MSprites[0],(P_X,P_Y))
pygame.display.update()
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
sys.exit()
# minor issue below ( f key for full screen )
if event.key == pygame.K_f:
pygame.display.toggle_fullscreen()
if event.key == pygame.K_a:
screen.fill(WHITE)
screen.blit(MSprites[3],(P_X,P_Y))
P_X = P_X - P_SPEED
pygame.display.update()
CLOCK.tick(FPS)
screen.fill(WHITE)
screen.blit(MSprites[4],(P_X,P_Y))
P_X = P_X - P_SPEED
pygame.display.update()
if event.key == pygame.K_d:
screen.fill(WHITE)
screen.blit(MSprites[6],(P_X,P_Y))
P_X = P_X + P_SPEED
pygame.display.update()
CLOCK.tick(FPS)
screen.fill(WHITE)
screen.blit(MSprites[7],(P_X,P_Y))
P_X = P_X + P_SPEED
pygame.display.update()
Я не получаю никаких ошибок, просто интересно, как решить эту проблему, если персонаж перемещается только один раз при нажатии клавиши, а не до тех пор, пока клавиша нажата.Большое вам спасибо за помощь мне.Я действительно ценю это.