首先,我是一个完全的初学者,所以我没有任何经验,但是我在过去两天搜索了所有可能的地方来解决问题,但找不到它。
我在带有 Raspbian 的 Raspberry PI 3 上使用它。
我正在尝试在 Python 3.6 中构建一个简单的代码,它将执行以下操作:
当按下键盘按键时:
1.如果按下该键,则应打印“press”,而不重复。
(如果按住该键,则应仅打印“按”一次并停止)。
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
问题解决了,这是因为我使用的是VNC,而不是使用直接连接到Raspberry Pi的键盘。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)