roberta 语言编程 Calliope mini 的 if 语句中的错误?

Bug in if statement of roberta language programming a Calliope mini?

我正在尝试在新发布的 Calliope 迷你计算机平台 (https://calliope.cc/) using one of the offered editors Roberta, a graphical interface (https://lab.open-roberta.org/) 上编程。

检查是否按下某个键并输出 hello world 消息的简单程序无法正常运行。同时,消息的直接输出以及使用 "always true" 条件 (1==1) 的输出和 if 语句都有效。

其他编辑器如https://miniedit.calliope.cc/可以毫无问题地处理按键输入,所以我可以排除任何硬件问题。

对我来说,Roberta 似乎在与 if 语句相关的密钥处理中包含一个错误。

有没有人观察到类似的行为?

到目前为止,似乎没有 Roberta 的用户论坛。

附上屏幕截图和代码。 感谢您的任何提示!

#define _GNU_SOURCE

#include "MicroBit.h" 
#include <array>
#include <stdlib.h>
MicroBit uBit;


int initTime = uBit.systemTime(); 


int main() 
{
    uBit.init();

    if ( uBit.buttonA.isPressed() ) {
        uBit.display.scroll(ManagedString("Hallo"));
    }
    release_fiber();
} 

您应该将您的代码放入无限循环中:

int main() 
{
    uBit.init();

    while ( true ) {
        if ( uBit.buttonA.isPressed() ) {
            uBit.display.scroll(ManagedString("Hallo"));
        }
        uBit.sleep(1);
    }
    release_fiber();
}