【Microsoft MakeCode】条件分岐を使って地面に絵を描く方法とは?

,

こんにちは!
京都市伏見区にある子ども向けデジタル教室『エンゼルものづくりラボ』のプリンです!

今日は「プロクラ」の初級コースを受講中の生徒さまからよくあるご質問『条件分岐を使って絵を描きたい!』
の作り方の1つをご紹介します!

最後にサンプルコードを公開しておきますので、わからなくなったらそちらをご覧ください。

他のやり方でももちろん作れますので、ぜひアレンジして自分だけの絵を描いてみてくださいね!

設計図を考えよう!

今回は15×15マスの範囲に9×9マスの絵を描いていきたいと思います。
地面にはわかりやすくあらかじめマス目の模様を描いておきました。
※サンプルコードの「チャットコマンド tile」


今回エージェントは図の左下の位置からスタートします。

準備:エージェントに3つのブロックを渡そう

エージェントのスロット1~3に、3つのブロックを渡します。

スロット1:地面に埋め込んでおくためのブロック
スロット2:絵の模様になるブロック
スロット3:模様以外の塗りつぶしに使うブロック

準備:地面に目と口の絵を先に描いておこう

こんな風に、目と口の部分に先にブロックを埋め込んでおきたいと思います。

チャットコマンド「face」を作成し、「スロット番号1」を有効にして、絵を描きたいところにブロックを置いていきましょう。

右のサンプルコードは、ためしに1つだけ左の目を置いてみたところです。

地面にはすでに草ブロックやタイルのブロックがあるので、ブロックを置く前に先に破壊させる必要があることに注意しましょう。

1つだけ置き換えることができることを確認したら、もう片方の目やのこりの口の部分も自分で考えて作ってみましょう。

口の部分は横に5ブロック並んでいるので、ループ(繰り返し)を使うことができますね。

条件分岐を使って「エージェントの足もとのブロックを調べてエージェントの上にブロックを置こう」

エージェントに、9×9マスの範囲を順に調べながらブロックを置かせます。

①エージェントの足もとのブロックを調べる
②もしスロット1のブロックが埋め込まれていたらスロット2のブロックを上に置く
③もしスロット1のブロックが埋め込まれていなければスロット3のブロックを上に置く


①~③の作業を9×9マスすべてに繰り返すと、頭の上に絵が現れます。

チャットコマンド「faceif」に条件分岐のコードを書いてみました。

①絵を描きたい9×9マスの左手前にエージェントを移動させます。

②まずは前に向かって1列分を調べていきましょう。

 エージェントの下のブロックを調べて、スロット1のブロックをみつけたらスロット2のブロックを頭の上に置く、そうでなければスロット3のブロックを頭の上に置きます。

③1列分調べ終わったら、次の右の列を調べたいので、後ろに9ブロックさがって、右に1ブロック移動します。

④ ②と③の動きを横方向に9列分繰り返すと、9×9すべてを調べながらブロックを置き終わります。

応用:足元のブロックを調べたら、前に進んでから後ろにブロックを置く

さきほどはブロックをエージェントの上に置きましたが、もし地面の上に直接置きたい場合は、さきほどのコードを少し改良すると置くことができます。

変更ポイント① エージェントの足もとのブロックを調べたら、今エージェントがいる位置にブロックを置くために、前に1歩移動します。移動しおわったら、後ろにブロックを置きましょう。

変更ポイント②前に1列調べ終わった後、右の列に移動しますが、後ろにブロックが置かれているので、そのまま後ろに移動することができません。先に右の列に移動してから、後ろに9ブロック後退しましょう。

実際のMakeCode

実際のコードはこちらのURLで公開しています。
ぜひ参考に素敵なオリジナル作品を作ってみてくださいね!

※本製品はMinecraft 公式製品ではありません。Mojang Studios から承認されておらず、Mojang Studios とは関係ありません。
※NOT OFFICIAL MINECRAFT PRODUCT. NOT APPROVED BY OR ASSOCIATED WITH MOJANG.

\ 最新情報をチェック /


    PAGE TOP