是否可以等待按钮 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”块中,放置这是您希望代码停止并继续按键更新的地方,您很高兴。
这是等待来自按钮 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”块中,放置这是您希望代码停止并继续按键更新的地方,您很高兴。