在python中按住一个键

时间:2015-09-27 01:34:12

标签: python python-3.x keyboard serial-port

我正在编写一个简单的python代码来接收定义操纵杆位置的串行字符串,将X和Y分开并相应地执行键盘命令。

在我的代码中,我试图这样做,当用户将操纵杆保持在右侧时, - >保持按下状态,然后释放。要做到这一点,我正在使用PyUserInput库。但是,正确的键会无限期地按下并且角色(模仿器中的Megaman)只是在它的死亡中运行。任何人都可以帮我弄清楚为什么会发生这种情况,我该如何解决?

import serial
from pykeyboard import PyKeyboard


control = PyKeyboard()
try:
    arduino = serial.Serial('/dev/ttyACM0', 9600)
except:
    print "Failed to connect on /dev/ACMDUSB0"
while True:
    xy = arduino.readline()
    if xy is "":
        print ("NULL")
    else:
        x, y = xy.split("_")
        x = int(x)
        y = int(y)
        while(x > 700):
                control.press_key(control.right_key)
        control.release_key(control.right_key)
        print ("X = {0}\nY = {1}".format(x, y))

1 个答案:

答案 0 :(得分:0)

正如@Ignacio Vazquez-Abrams在评论部分指出的那样,错误是由于我没有重新检查在while循环结束时按下哪些控件,从而使其无限运行。