0

如果有人能够在我的脚本上帮助我,我将不胜感激。我打算编写一个能够在循环之间切换的脚本。目前,我有两个(2)while 循环。因此,我添加了一个“if”语句来创建一个条件,我希望程序能够区分运行哪个循环。但是当我运行程序时,我只能连接 Wiimote,但无法运行条件和 while 循环。如果有人能指出或帮助我使我的脚本正确,我将不胜感激。我对编程语言有点陌生。还在试验自己。

import cwiid

print("Press and hold 1+2 buttons on your Wiimote simultaneously")
wii = cwiid.Wiimote()
print("Connection established")

wii.rpt_mode = cwiid.RPT_BTN

while True:

    buttons = wii.state["buttons"]

    if (buttons & cwiid.BTN_MINUS):
        wii.rpt_mode = cwiid.RPT_BTN
        condition_1 = buttons & cwiid.BTN_MINUS
        
        while condition_1 == buttons & cwiid.BTN_MINUS:
            if (buttons & cwiid.BTN_LEFT):
                print("LEFT")

            if (buttons & cwiid.BTN_RIGHT):
                print("RIGHT")

            if (buttons & cwiid.BTN_UP):
                print("UP")

            if (buttons & cwiid.BTN_DOWN):
                print("DOWN")

            if (buttons & cwiid.BTN_B):
                print("B")

    if (buttons & cwiid.BTN_PLUS):
        wii.rpt_mode = cwiid.RPT_BTN | cwiid.RPT_ACCC
        condition_2 = buttons & cwiid.BTN_PLUS

        while condition_2 == buttons & cwiid.BTN_PLUS:
            print(wii.state['acc'])
            time.sleep(0.01)
4

1 回答 1

0

经过挖掘并做一些研究。设法达到目标。以下是我编写并设法运行的代码。

import cwiid
import time

delay = 0.2

print("Press and hold 1+2 buttons on your Wiimote simultaneously")
wii = cwiid.Wiimote()
print("Connection established")

wii.rpt_mode = cwiid.RPT_BTN

while True:
    buttons = wii.state["buttons"]

    if (buttons & cwiid.BTN_MINUS):
        print("Button - pressed: Joypad Mode")
        
        condition_1 = True
        
        while condition_1:
            if (buttons & cwiid.BTN_LEFT):
                print("LEFT")

            if (buttons & cwiid.BTN_RIGHT):
                print("RIGHT")

            if (buttons & cwiid.BTN_UP):
                print("UP")

            if (buttons & cwiid.BTN_DOWN):
                print("DOWN")

            if (buttons & cwiid.BTN_B):
                print("B")

            buttons = wii.state["buttons"]

            if (buttons & cwiid.BTN_PLUS):
                print("Button + pressed: Switch condition")
                condition_1 = False

        time.sleep(delay)


    if (buttons & cwiid.BTN_PLUS):
        print("Button + pressed: Accelerometer Mode")
        wii.rpt_mode = cwiid.RPT_BTN | cwiid.RPT_ACC
        condition_2 = True

        while condition_2:
            print(wii.state['acc'])
            time.sleep(0.01)

            buttons = wii.state["buttons"]

            if (buttons & cwiid.BTN_MINUS):
                print("Button - pressed: Switch condition")
                condition_2 = False
于 2021-05-25T18:41:23.837 回答