首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Wiimote按钮按下Python退出循环

用Wiimote按钮按下Python退出循环
EN

Stack Overflow用户
提问于 2016-01-06 18:38:33
回答 1查看 137关注 0票数 1

我正在编写一个python脚本,它将使用cwiid库使用Wiimote来控制LED。该程序识别wiimote并能够启动循环,但是当用户按下遥控器上的"B“键时,它不会让我停止循环。这是相关的代码,如果需要,我可以提供脚本的其余部分。谢谢。

代码语言:javascript
复制
  buttons = wii.state['buttons']

..。

代码语言:javascript
复制
  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)

这是斯图尔特回答的固定循环

代码语言:javascript
复制
  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)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-06 18:57:24

wii.state['buttons']似乎是一个数字,因此将其存储在变量buttons中意味着当用户按下不同的按钮组合时,它将不再被更新。

要解决这个问题,只需每次使用直接引用buttons来替换wii.state['buttons']

您可能需要考虑检查B是否在每个blink之后按下,如下所示:

代码语言:javascript
复制
from itertools import cycle
...
if wii.state['buttons'] & cwiid.BTN_A:
    print 'Button A pressed'
    print 'Press B to cancel loop'
    for colour in cycle([32, 38, 36, 40, 37, 35, 33, 31]):
        blink(colour)
        if wii.state['buttons'] & cwiid.BTN_B:
            break
    time.sleep(button_delay)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34640336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档