マインクラフトプログラミング、略してマイクラミング。
当初はマインクラフト+スクラッチでマイクラッチにしようと思ったのですがエデュケーショナル・デザイン株式会社さんが商標として登録申請をしているので使用はやめました。
Minecraft+Scratchでマインクラッチとかも考えましたけどminecratchとう単語も危なっかしいのでやめました。
それにそもそもマインクラフトでプログラミングに使うのはスクラッチだけではなくメイクコードも使うので適切ではないなと。
今回はマインクラフトwindows10版でプログラミングをするCode Connectionの中のメイクコードにてスーパーパワーに分類されているWalk on Waterのチェックです。
プログラムは以下の通り。
プレイヤーが水の中を泳いだ時、足元の3×3の範囲を氷ブロックに置き換える。
というプログラムです。
プログラム自体はすごく単純です。
チュートリアルではチャットで発言したらプログラムを実行するというものでしたが、今回は発言が実行条件ではなく水の中を泳いだ時になっています。
このようなプレイヤーが~した時というのは他にもあります。
プレイヤーが~した時の項目一覧
- 歩いた
- 水の中を泳いだ時
- 落下した
- 登っている
- 溶岩の中を歩いた時
- 飛んだ
- 乗っている
- スニークした
- 走った
- バウンドした
があります。
様々な条件がありますが、思ってもいない場合に条件がクリアされることもあります。
今回の水の中を泳いだ時も実はその一つです。
意外な実行条件の例
水の中を泳いだ時
水の中を泳いだ時に実行されるのは当たり前ですが、実は水から出るときも実行される場合があります。
今回の例では水から陸に上がるときに陸のギリギリのところに乗ると周りが氷ブロックになります。
落下した時
落下した時と聞くとどのような状況を考えますか?
落下が始まった時?
落下している時?
落下が終わって着地する直前?
実はすべてが当てはまり実行されるようです。
落下が始まった時の一番わかりやすいのはジャンプした時です。
ジャンプして落下が始まった直後に実行されます。
落下しているときは2~3ブロックごとに判定が行われているようです。
下の画像は今回のプログラムを条件変更して空中から落下した時に設置された氷ブロックです。
最下段の氷ブロックに着地しました。途中はすり抜けたようです。
落下が終わって着地する直前というのはジャンプしたときに確認できます。
落下直後も着地直前もジャンプで確認できます。
思いっきりジャンプすると落下直後、軽くジャンプすると着地直前というようなイメージです。
このように実行条件が1つではないものがあるので細かいプログラムを組むときは注意が必要です。
コメント