我正在写一个python脚本,用cwiid库用Wiimote控制led。这个程序能识别wiimote并能启动循环,但当用户按遥控器上的“B”时,它不会让我停止循环。下面是相关代码,如果需要,我可以提供脚本的其余部分。谢谢。你知道吗
buttons = wii.state['buttons']
。。。你知道吗
if (buttons & cwiid.BTN_A):
print 'Button A pressed'
print 'Press B to cancel loop'
keepRunning = True
while keepRunning:
blink(32)#5v green
blink(38)#5v yellow
blink(36)#5v blue
blink(40)#5v red
blink(37)#3v3 green
blink(35)#3v3 yellow
blink(33)#3v3 blue
blink(31)#3v3 red
if (buttons & cwiid.BTN_B):
keepRunning = False
time.sleep(button_delay)
根据斯图尔特的回答,这里是固定回路
if (buttons & cwiid.BTN_A):
print 'Button A pressed'
print 'Press B to cancel loop'
keepRunning = True
while keepRunning:
blink(32)#5v green
blink(38)#5v yellow
blink(36)#5v blue
blink(40)#5v red
blink(37)#3v3 green
blink(35)#3v3 yellow
blink(33)#3v3 blue
blink(31)#3v3 red
buttons = wii.state['buttons']#added in this line
if (buttons & cwiid.BTN_B):
keepRunning = False
time.sleep(button_delay)
wii.state['buttons']
似乎是一个数字,因此将它存储在变量buttons
中意味着当用户按下不同的按钮组合时,它不再被更新。你知道吗要解决这个问题,只需每次将
buttons
替换为对wii.state['buttons']
的直接引用。你知道吗您可能需要考虑检查是否在每个
blink
之后按下B,如下所示:相关问题 更多 >
编程相关推荐