【发布时间】:2019-12-26 03:27:33
【问题描述】:
我的 pgzero 按键事件处理程序确实只识别一次按下的按键(直到释放),但如果按键被按住,则不支持重复按键事件。
我怎样才能做到这一点?
PS:由于pgzero 是使用pygame 实现的,也许pygame 解决方案可以工作...
import pgzrun
counter = 1
def on_key_down(key):
global counter
if key == keys.SPACE:
print("Space key pressed...")
counter = counter + 1
def draw():
screen.clear()
screen.draw.text("Space key pressed counter: " + str(counter), (10, 10))
pgzrun.go()
【问题讨论】:
-
如果你一直按下它就不能重复——系统没有这个事件。您只能在
on_key_down中设置一些 True 值并在on_key_up中设置 False 并使用计时器检查该值是否仍然为 True 并将其计为重复。 -
您也可以使用
keyboard[keys.SPACE]。 -
@furas 谢谢,这确实更直观地工作(无需额外的按键变量)