是否可以等待按钮 A 或按钮 B?

Is it possible to wait for either button A or button B?

这是等待来自按钮 A 的事件的代码。

control.waitForEvent(Button.A, EventBusValue.MICROBIT_EVT_ANY)

我想等待按下按钮 A 或按钮 B。

这可能吗?

编辑

我知道在Scratch中这可以用button.any之类的东西实现,上面的代码也是在microjavascript中写的,但在micropython中写得类似,所以也许这个领域的人也可以提供帮助。谢谢。

查看使用 https://makecode.microbit.org 中的 'on event from' 块生成的 python 代码。该块可以在“高级”选项卡下找到。该块可以设置为等待按钮 A 或 B 被按下。本例生成的micropython代码为:

control.on_event(EventBusSource.MICROBIT_ID_BUTTON_AB,
    EventBusValue.MICROBIT_EVT_ANY,
    on_microbit_id_button_ab_evt) 

等效的JavaScript代码也可以在编辑器中查看。

我能做到的最好方法是使用通用 function for A nad B,在按下按钮的事件上调用,例如:

input.onButtonPressed(Button.A, function () {
    qAndA(true)
})
input.onButtonPressed(Button.B, function () {
    qAndA(false)
})

true 和 false 不是最好的实现,但要知道按下了哪个按钮,我需要为 A 传递 true,为 B 传递 false

这对我来说是必需的,因为我正在编写测试,稍后在这个函数中我会比较按下的按钮和实际的正确答案。该函数(没有我的完整实现)是这样的:

function qAndA(aOrB: boolean) {
    if (text_list.length == 0) {
        basic.showNumber(count)
        basic.pause(2000)
        basic.showLeds(`
            # # # # #
            . . # . .
            . . # . .
            . . # . .
            . . # . .
            `)
    }
    if (text_list[0] == Q1 && aOrB == true) {
        ...
    }
} 

从头开始,放置一个[等待<按键(a)||或|| Key Pressed (b)>], 可以解决这个问题,你可以将一个 key pressed (a) 和一个 key pressed (b) 放入相同的 or 语句中,并将新块放入“Wait until”块中,放置这是您希望代码停止并继续按键更新的地方,您很高兴。