この記事では、教育版マインクラフトのMakeCodeでカスタムブロックを作る方法をご紹介しています。
※ベータ版エディタを使用します。事前にバックアップをとり、自己責任でお願いします。
マイクラカップの審査基準には「3.技術力」があり、各チームが独自のMakeCodeやレッドストーン回路、コマンドブロックを使って技術力をアピールしていると思います。
ここではMakeCodeでカスタムブロックを作る方法を紹介します。
カスタムブロックを作るとこのように表示されます。
上記画像で示すように「10ブロック上空から1~50羽の鶏を降らせる」ブロックが表示されます。
カスタムブロックを作成する方法
カスタムブロックを記述する「custom.ts」を追加
画像を参考に下記手順でベータ版エディタに切り替えます。
カスタムブロックは、JavaScriptで記述するのでブロック⇒JavaScriptに切り替えます。
設定から「シミュレータを切り替える」ボタンを押下します。
左側に「エクスプローラー」コンボボックスが表示されたのを確認してください。
「エクスプローラー」コンボボックスを展開し、「+」ボタンを押下します。
「カスタムブロックを追加しますか?」メッセージが表示されるので「つづける」ボタンを押下してください。
JavaScriptでカスタムブロックを記述する
「エクスプローラー」より「custom.ts」を選択して、サンプル関数の下に作成するカスタムブロックを記述します。
/**
* あなたの10ブロック上にニワトリ(1~50羽)を降らせます
* @param chickens ニワトリ数(1~50)
*/
//% block="10ブロック上空から$chickens羽の鶏を降らせる"
//% chickens.min=1 chickens.max=50 chickens.defl=25
export function chicken(chickens: number): void {
for (let index = 0; index < chickens; index++) {
mobs.spawn(CHICKEN, pos(0, 10, 0))
}
}
JavaScript⇒ブロックに切り替え、「CUSTOM」ボタンを押下し、カスタムブロックが表示されていること確認してください。
ソースコードの説明
MakeCodeのチュートリアル「Chicken Rain」をカスタムブロック化しました。
「Chicken Rain」のコードをブロック⇔JavaScriptと切り替え、どことどこが対応しているかを確認してください。
7行目は関数名や引数となります。
export function chicken(chickens: number): void {
関数名は「chicken」、引数は数字型で名前は「chickens」、戻り値はなしです。
JavaScriptなので処理詳細の説明は省きます。
5行目がブロックに表示される文字列です。
//% block=”10ブロック上空から$chickens羽の鶏を降らせる”
引数と引数名の先頭に「$」を付けた文字がリンクされます。
今回は「$chickens」の部分がリンクされており、ニワトリ数を入力することができます。
6行目は引数の入力範囲と初期値を指定しています。
//% chickens.min=1 chickens.max=50 chickens.defl=25
1~50の範囲で初期値を25に設定しています。
入力範囲を指定しているので下記のように入力バーが表示されます。
MakeCodeでカスタムブロックを作るときの詳細についてはこちらを参照してください。
https://makecode.com/defining-blocks
カスタムブロックを使う
10ブロック上空から10羽の鶏が降ってきました。
注意点
ベータ版エディタを使用します。事前にバックアップをとり、自己責任でお願いします。
もっと詳しく学ぶには
Hoshino Hisashi 様が文教向けにまとめた資料がありました。
↓こちらの方が丁寧でわかりやすいです。紹介させていただきます。