拡張機能で引数有りのブロックを作ってみよう

まずは引数無しのブロックを作ってみます。



function echo () {
    basic.showString("hello microbit!")
}

//% color="#000000" icon="\uf1e6" block="引数付き拡張機能"
namespace myExtensionWithArgs {

    //% block="echo"
    export function echo (): void {
        basic.showString("hello microbit!")
    }
}

関数の返り値をvoidにすることで、



最初からブロック等のようなイベントブロック(コンテナブロック)に挿入できるブロック(コマンドブロック)になりました。




引数有りのブロックを作ってみます。



function echo (str: string) {
    basic.showString(str)
}

//% color="#000000" icon="\uf1e6" block="引数付き拡張機能"
namespace myExtensionWithArgs {

    //% block="echo %str"
    export function echo (str: string): void {
        basic.showString(str)
    }
}


echoブロックに引数を追加することで値ブロックが追加された形のコマンドブロックになります。

コマンドブロックに値ブロックを追加する時は、関数の上に挿入しましたコメントで

//% block="echo %str"

のように引数名の頭に%を付けて指定します。

京都の東本願寺で開催されているプログラミング教室で講師をしています。
詳しくはTera schoolを御覧ください。
同じカテゴリーの記事
マインクラフト用ビジュアルエディタを開発しています。

詳しくはinunosinsi/mcws_blockly - githubをご覧ください。