Во-первых, я начинающий, поэтому у меня нет опыта, однако я искал все возможные места за последние 2 дня и не смог его найти.
I 'Я использую это на Raspberry PI 3 с Raspbian.
Я пытаюсь создать простой код на Python 3.6, который будет делать следующее: При нажатии клавиши клавиатуры:
1.itдолжен печатать «нажать», если клавиша была нажата, без повторения.
(если клавиша удерживается нажатой, она должна печатать «нажать» только один раз и останавливаться).
2.Это должно напечатать 'release', если ключ был отпущен без повторения.
В основном я хочу напечатать один раз последнее состояние ключа,
Проблема, с которой я столкнулся,:
, удерживая нажатой клавишу, я получаю последовательные события нажатия / выпуска, нажатия / выпуска нажатия / выпуска, даже если ни одна клавиша не была отпущена физически, вместо того, чтобы получать только 1 «нажатие».
Ниже приведен код, который я пытаюсь использовать.
#!/usr/bin/env python
import pygame
from pygame.locals import *
from time import sleep
import time
pygame.init()
screen = pygame.display.set_mode((800,800))
keys= [False]
last = None
pygame.key.set_repeat()
while True:
if keys[0]==True and last != 'press':
print ('press')
last = 'press'
if keys[0]==False and last != 'release':
print('release')
last = 'release'
for event in pygame.event.get():
if event.type==pygame.QUIT:
pygame.quit()
exit(0)
if event.type == pygame.KEYDOWN:
if event.key==K_d:
keys[0]=True
if event.type == pygame.KEYUP:
if event.key==K_d:
keys[0]=False