python pygame.get_pressed() проверка нажатой клавиши дает два срабатывания
Всем доброго времени суток!
Я пытаюсь обработать нажатия клавиш
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
keys = pygame.key.get_pressed()
if keys[pygame.K_SPACE]:
print("Нажата клавиша SPACE'")
elif keys[pygame.K_ESCAPE]:
print("Нажата клавиша 'Esc'")
print('[exited]')
pygame.quit()
sys.exit()
pygame.event.pump()
При работе программы после нажатия клавиши SPACE появляются два сообщения о нажатии клавиши SPACE. Вот, собственно и вопрос: что надо добавить/изменить?
Заранее благодарен.
Ответы (1 шт):
Автор решения: arnold
→ Ссылка
Вот как вариант:
from pynput.keyboard import Listener as Kl, Key
import datetime
rand = ''
def key_pressed(key):
global rand, path
a = str(key).replace("Key.", "")
if a.find("'") == -1:
a = "'" + a + "'"
time = str(datetime.datetime.today())[11:-4]
time = time.replace(":", ".")
string = f'{time} - pressed {a}'
print(string)
if key == Key.esc:
return False
def key_released(key):
pass
with Kl(on_press=key_pressed, on_released=key_released) as listener:
listener.join()