Giorgio B
Giorgio B

Reputation: 193

Pygame holding multiple keys

I'm making a game with Pygame, but I have a problem with commands: when I press, for example, Left-Key player goes left; holding Left-key i press Right-Key: then player goes right. When I release Right_Key i want that player goes again left until i don't effectively release the Left-Key.

Here is my code for moving:

def handle_events(events):
for event in events:
    if event.type == pygame.QUIT:
        pygame.quit()
        sys.exit(1)
    if event.type == pygame.KEYDOWN:
        if event.key == 275:
            KeyVar.dx = +2
        elif event.key == 276:
            KeyVar.dx = -2
        elif event.key == 274:
            KeyVar.dy = +2
        elif event.key == 273:
            KeyVar.dy = -2
        if event.key == 32:
            KeyVar.space = 1
    elif event.type == pygame.KEYUP:
        if event.key in (275, 276):
            KeyVar.dx = 0
        elif event.key in (274, 273):
            KeyVar.dy = 0
        if event.key == 32:
            KeyVar.space = 0

And so:

while True:
    handle_events(pygame.event.get())

[Sorry for my bad English]

Upvotes: 0

Views: 418

Answers (1)

goomba
goomba

Reputation: 103

elif event.type == pygame.KEYUP:
    if event.key in (275, 276):
        KeyVar.dx = 0

this bit of code makes it so that if either key is released it stops moving. you may want to use an "and" statement to prevent it from stopping you even if you are holding a key down

Upvotes: 2

Related Questions