我想制作一个程序,当我按下游戏手柄上的一个button并按住它时,只要按住button,某个字符就会被重写并重复,就像键盘一样。
到目前为止,我已经设法插入任何我想要的angular色,但最困难的部分是保持按下。
我尝试使用pyGame,win32api,win32con,但我找不到任何有用的东西。 (也许我没有对这些图书馆有充分的了解)
此外,我是一个菜鸟,当涉及到python编程,所以如果你需要额外的信息,使我的问题更容易理解,请告诉。
谢谢。
pygame试试这个: http ://www.pygame.org/docs/ref/key.html#pygame.key.set_repeat
在我看来,就像你正在寻找什么。
如果你不想这样解决,你将不得不编写一个线程,从关键事件开始,在关键释放事件上停止,并在调用关键事件时一遍又一遍地调用自己。 这将看起来像这样:
from threading import Thread, Event from time import sleep class BtnRepeater(Thread) def __init__(self, *args, **kw): self.stop = Event() if 'startdelay' in kw: self.stdelay = kw.pop('startdelay') else: self.stdelay = 1 default delay if 'repeatdelay' in kw: self.rpdelay = kw.pop('startdelay') else: self.rpdelay = 0.2 default delay Thead.__init__(self, *args, **kw) def run(self): sleep(self.stdelay) while not self.stop.is_set(): # invoke event here sleep(self.rpdelay) def event_handler_btn_down(event): # needs to be binded somewhen br = BtnRepeater() bind(event.key,'key_release',br.stop.set) # this is no real pygame call - but you probably know what I'm talking about br.start()