Python 按下某个键时,仅将变量增加1

Python 按下某个键时,仅将变量增加1,python,pygame,Python,Pygame,我有一个可变状态计数器,我想在按下a键时将其减少1,在按下d键时将其增加1 我得到了一个有疑问的灵感:按下一个键时只增加一个,但我的代码没有按预期工作,当我将按下的变量重置为false时,状态计数器开始自行增加 running = True state_counter = 0 number_of_states = 0 was_pressed = False import pygame while running: for event in pygame.event.get():

我有一个可变状态计数器,我想在按下
a
键时将其减少1,在按下
d
键时将其增加1

我得到了一个有疑问的灵感:按下一个键时只增加一个,但我的代码没有按预期工作,当我将按下的
变量重置为
false
时,状态计数器开始自行增加

running = True
state_counter = 0
number_of_states = 0
was_pressed = False

import pygame

while running:
    for event in pygame.event.get():
        if event.type == QUIT or (event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE):
        # The user closed the window or pressed escape
        running = False

        if event.type == KEYDOWN and event.key==K_a:
            if not was_pressed:
                state_counter -= 1
                print("state_counter %d times"%state_counter)
                was_pressed = True
            else:
                was_pressed = False

        elif event.type == KEYDOWN and event.key == K_d:
            if not was_pressed:
                state_counter += 1
                print("state_counter %d times"%state_counter)
                was_pressed = True
            else:
                was_pressed = False
pygame.quit()
print('Done!, state counter is: ', state_counter)
问题是,我需要变量同时递增和递减(这与前面提到的问题不同),当然,我需要变量在每次按下键时都进行更改(这可能也是前一个问题的情况,但我无法实现)。我也不能告诉我们
time.sleep()
,因为我不想让程序休眠


非常感谢您的帮助。

按下键时,
向下键事件只发生一次。当按住键时,它不会连续出现。因此,不需要按下
按钮
状态:

运行时:
对于pygame.event.get()中的事件:
如果event.type==QUIT或(event.type==pygame.KEYDOWN和event.key==pygame.K_ESCAPE):
#用户关闭窗口或按escape键
运行=错误
如果event.type==KEYDOWN和event.key==K_a:
状态计数器-=1
打印(“状态计数器%d次”%state\u counter)
elif event.type==KEYDOWN和event.key==K\u d:
状态计数器+=1
打印(“状态计数器%d次”%state\u counter)

谢谢,问题是我在PyBox2D游戏中使用它,我将该命令嵌套到一个循环中,该循环关注Box2D世界,在该循环中,该键被称为“每个世界勾号”,我从循环中取出,现在它按预期工作,再次感谢
import pyautogui
import pygame
Number_of_Presses = 0
for event in pygame.event.get():
    if event.type == pygame.KEYDOWN:
       if event.key == pygame.K_a:
            Number_of_Presses -= 1
            print (Number_of_Presses)
    if event.type == pygame.KEYDOWN:
       if event.key == pygame.K_d:
            Number_of_Presses += 1
            print (Number_of_Presses)