簡體   English   中英

按下某個鍵時,將變量增加1

[英]Increase a variable just by one when a key is pressed

我有我想要一個,當一個鍵減少可變狀態計數器a接一個,當被壓,增加d按下鍵。

我提出了一個問題的靈感:當按下一個鍵時,只增加一個,但是我的代碼沒有按預期工作,當我將was_pressed變量重置為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()因為我不想讓程序睡覺。

任何幫助表示感謝,非常感謝您提前。

KEYDOWN事件僅在按下鍵時發生一次。 當密鑰保持時,它不會連續出現。 所以不需要was_pressed狀態:

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:
            state_counter -= 1
            print("state_counter %d times"%state_counter)

        elif event.type == KEYDOWN and event.key == K_d:
            state_counter += 1
            print("state_counter %d times"%state_counter)
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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM