Reputation: 193
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
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