Так что я делаю простую вещь и слежу за учебником на youtube. У меня есть возможность переместить банши (я использовал изображение из Halo для своего корабля) с использованием WASD, но мне приходится повторно нажимать клавиши, тогда как я хочу, чтобы их можно было перемещать, удерживая клавиши. Вот код;Pygame - определить, удерживается ли клавиша?
import pygame
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode((1440,900))
pygame.display.update()
black=(0,0,0)
white=(255,255,255)
background = pygame.image.load("G:/starfield.jpg")##loads the background
banshee = pygame.image.load("G:/banshee.png")###loads sprite of a spaceship that will move.
x=1
y=1
while True:
gamexit = False
while not gamexit:
screen.blit(background,(0,0))
screen.blit(banshee,(x,y))
pygame.display.update()
if x==1440 or x==0 or y==900 or y==0:#if it touches the sides of the window, the window closes
pygame.quit()
quit()
else:
for event in pygame.event.get():
pressed= pygame.key.get_pressed()
if event.type == pygame.QUIT:
gamexit=True
pygame.quit()
quit()
elif event.type==KEYDOWN:
if event.key==K_w:#moves banshee up if w pressed, same for the other WASD keys below
y=y-5
x=x
screen.blit(banshee,(x,y))
pygame.display.update()
elif event.key==K_a:
x=x-5
y=y
screen.blit(banshee,(x,y))
pygame.display.update()
elif event.key==K_d:
x=x+5
y=y
screen.blit(banshee,(x,y))
pygame.display.update()
elif event.key==K_s:
y=y+5
x=x
screen.blit(banshee,(x,y))
pygame.display.update()
Я пробовал много разных способов сделать это (здесь и в другом месте), чтобы не помогло. Есть ли что-нибудь, что я могу здесь сделать, что не нужно переписывать большой раздел кода?
Спасибо.
Это прекрасно работает! Большое спасибо! – BaconShelf