1

Here is the picture when I try to run the program

img

My problem is about PyGame. This is very strange: when I press W the code works, but only for the KEYUP event: When I press W I get no output, but when I release W, I get the output.

 event in pygame.event.get()
     if event.type == pygame.KEYDOWN:
         if event.key == pygame.K_LEFT: 
            Karakterx_değişim = -0.3
     


         if event.key == pygame.K_RIGHT: 
            Karakterx_değişim = 0.3
         if event.key == pygame.K_UP:
             KarakterY_değişim = -0.1
         if event.key == pygame.K_DOWN:
             KarakterY_değişim = 0.1
         if event.key == pygame.K_w:
             fire_bullet(Karakterx,Bullety)   
             print("worked on key down function")
             # it doesnt works in key down 
     
     if event.type == pygame.KEYUP:
            if event.key == pygame.K_RIGHT or event.key == pygame.K_LEFT:
                Karakterx_değişim=0 
            if event.key== pygame.K_UP or event.key== pygame.K_DOWN :
                KarakterY_değişim = 0
            if event.key == pygame.K_w:
             fire_bullet(Karakterx,Bullety)   
             print("WORKED ON KEY UP function ")
             # it doesnt works in key it works with  

What should I do? Is the problem in my computer, in the vs code or in Python? I'm using Python latest version 3.9.

D_00
  • 1,440
  • 2
  • 13
  • 32
  • 1
    You are only getting the last event from what I can tell, which would be key up. You need to get in a loop: `for event in pygame.event.get():` – marienbad May 20 '21 at 18:38

0 Answers0