In my pygame movement system, how do i make it so when I press a key, then press another key so I go diagonally, and then release one of the keys, for it to continue in only that direction? I have tried multiple solutions and none have worked. code:
import pygame
screen = pygame.display.set_mode((1000,500))
pygame.display.set_caption("testing")
running=True
icon=pygame.image.load('example.png')
pygame.display.set_icon(icon)
pygame.init()
pygame.HWSURFACE
playerImg=pygame.image.load('player.png')
playerX=430
playerY=400
clock=pygame.time.Clock()
xchange=0
ychange=0
def player ():
screen.blit(playerImg,(playerX,playerY))
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running=False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT and event.type == pygame.KEYDOWN and not event.key==pygame.K_DOWN and not event.key==pygame.K_UP and not event.key==pygame.K_RIGHT:
xchange=-0.1
if event.key == pygame.K_LEFT and event.type == pygame.KEYDOWN and event.key == pygame.K_UP:
xchange=-0.1
ychange=-0.1
if event.key == pygame.K_RIGHT and event.type == pygame.KEYDOWN and not event.key == pygame.K_DOWN and not event.key==pygame.K_UP and not event.key==pygame.K_LEFT:
xchange=0.1
if event.key == pygame.K_LEFT and event.type == pygame.KEYDOWN and event.key == pygame.K_UP:
xchange=0.1
ychange=-0.1
if event.key == pygame.K_UP and event.type == pygame.KEYDOWN and not event.key == pygame.K_DOWN and not event.key==pygame.K_RIGHT and not event.key==pygame.K_RIGHT:
ychange=-0.1
if event.key == pygame.K_DOWN and event.type == pygame.KEYDOWN and not event.key == pygame.K_UP and not event.key==pygame.K_LEFT and not event.key==pygame.K_RIGHT:
ychange=0.1
if event.key == pygame.K_LEFT and event.type == pygame.KEYDOWN and event.key == pygame.K_DOWN:
xchange=-0.1
ychange=0.1
if event.key == pygame.K_RIGHT and event.type == pygame.KEYDOWN and event.key == pygame.K_DOWN:
xchange=0.1
ychange=0.1
if event.type == pygame.KEYUP:
xchange=0
ychange=0
clock.tick(500)
screen.fill((0, 50, 90))
player()
playerY+=ychange
playerX+=xchange
pygame.key.get_pressed()
pygame.display.update()
done in visual studio code