マイクラで『ボタンを押すとワープする』プログラミングをしてみよう
目次
関連記事
ワープするプログラムを作る
やっほー 春日部つむぎだよ
なのなのだ ずんだもんなのだ
今日は天気がよかったから探検していたのだけど、その時にいい採掘場を見つけたのだ!
またあそこまで行きたいのだけど、大変なのだ…。 つむぎおねーちゃん、何かいいアイデアはないのだ?
それなら、プログラミングでワープできるようにしちゃえばいいんだよ!
ワープは確かに楽なのだ! 早速プログラミングするのだ!
使うのは『マインクラフト』と『メイクコード』の2つだよ! みんなも準備しておこう!
- 『MineCraft(マインクラフト)』はMicrosoftが提供しているサンドボックスゲームです。プレイヤーはブロックを積み上げて建物を作り上げたり、広い世界を冒険してモンスターと戦うことができます。メイクコードを使ってプログラミングをするためには統合版が必要です。
- 『MakeCode(メイクコード)』はMicrosoftが提供するオープンソースのプログラミング学習プラットフォームです。ブロックを使ったビジュアルコーディングとJavaScriptによるテキストコーディングの2種類のエディタを切り替えながら、プログラミングできます。
ワープの条件と移動先を決めよう
今回は「家から採掘場へ簡単にワープする装置」が欲しいのだ。
だったら、「ボタンを押したら採掘場にワープする」プログラムを作ろうか。 まずは装置を作るから、「ボタン、吸着ピストン、好きなブロック」を一つずつ準備してくれる?
準備万端なのだ。 僕は好きなブロックを《ダイヤモンド》ブロックにして作っていくのだ。
まずはボタンの位置なのだ。 今回は入り口に入って右手奥の壁に作るのだ。
ボタンが置けたら、その裏側に《吸着ピストン》と《ダイヤモンド》を置くよ。 今回は下向きに置くんだけど、《ダイヤモンド》の下は穴をあけておいてね。
そうすると、ボタンを押せばピストンが動くようになるんだ。 ただし、《ダイヤモンド》の下に他のブロックがあると動かなくなるから注意してね!
これで装置は完成したから、このまま必要な座標を確認しておこう。 確認するのはピストンを動かしたときに《ダイヤモンド》が来る場所の座標だよ。
今回は[2280,63,-21]なのだ。 あとは外見をきれいに作り直して完成なのだ。
作り直したときに、ボタンを押すとピストンが動くか確認しておこう!
次は、採掘場の座標を確認するのだ。 ちょっと行ってくるのだ!
気を付けてね~
………ただいまなのだ…。 目印もつけて座標も見てきたのだ。 疲れたのだ…。
おつかれさま! 座標は[2212,-29,-144]だね!
ここまでできたら準備完了! それじゃあ『メイクコード』に切り替えてプログラミングしていくよ!
プログラミングをはじめよう
使うコードを準備しよう
“ まずは必要なコードを画面に出していこう。今回は【チャットコマンド”jump”を入力した時】【チャットコマンド”jump”を実行する】【現在の位置から[~0,~0,~0]にテレポートする】【《ブロック》が座標[~0,~0,~0]の地点に存在するか、確認する】【ワールド[0,0,0]】【ずっと】【一時停止(ミリ秒)100】【もし〈真〉なら】の合計8つのコードを使うよ!
コードは画面左にある項目のように分かれています。今回必要となるブロックと対応する項目は以下の通りです。
- プレイヤー ⇨ 【チャットコマンド”jump”を入力した時】【チャットコマンド”jump”を実行する】【現在の位置から[~0,~0,~0]にテレポートする】
- ブロック ⇨ 【《ブロック》が座標[~0,~0,~0]の地点に存在するか、確認する】
- ポジション ⇨ 【ワールド[0,0,0]】
- ループ ⇨ 【ずっと】【一時停止(ミリ秒)100】
- 論理 ⇨ 【もし〈真〉なら】
実は種類はこれで全部だけど、数が足りてないからコードを複製しよう。 【ワールド[0,0,0]】を右クリックして複製してみてね。
普通の座標指定では「自分が今いる位置が基準」になり、ワールド座標指定では「そのワールドの座標が基準」になるという違いがあります。
また、数字と方角の関係は「東(x座標が+)、西(x座標が-)、南(z座標が+)、北(z座標が-)」となっています。また、「y座標が+なら上、-なら下」です。
これで全部準備できたのだ! 次はコードを組み合わせていくのだ!
コードを組み合わせよう
メイクコードでは以下のようにブロックを組み合わせてプログラミングしていきます。
- 凹凸のついたブロックは組み合わせられます
- 入力・選択部分が丸い形やをしているものは同じ形のコードをはめ込めます
凹凸の付いたブロックを組み合わて作る大まかな動きと入力・選択欄を変更して詳細な動きを設定していくのが、プログラミングの基本となります。
それじゃあコードを組み合わせていこう。 今回は2つのプログラムが必要になるから、1つずつ順番に進めていくね。
作り方によっては、プログラム全部がつながっていなくても大丈夫なのだね!
そうなんだよー。 それじゃあ1つ目のプログラムを作っていくね。
まずは【現在の位置から[~0,~0,~0]にテレポートする】と【《ブロック》が座標[~0,~0,~0]の地点に存在するか、確認する】の座標の部分に【ワールド[0,0,0]】をはめ込もう
【《ブロック》が座標[x,y,z]の地点に存在するか、確認する】のコードは、指定したブロックが座標の場所にあるかどうかを判別するコードです。 単体では使えず他のコードと組み合わせて使用します。
次に【もし〈真〉なら】の〈真〉の部分に【《ブロック》が座標[~0,~0,~0]の地点に存在するか、確認する】をはめ込もう
【もし〈真〉なら】のコードは、条件の真偽(条件があっているかどうか)を判定し組み合わさっているコードを動作させます。
また、〈真〉は条件があっている場合(~の時)を示し、〈偽〉は条件が間違っている(~ではない時)場合を示します。
例:「〈りんごを持っている〉が真の場合に動作する」→ りんごを持っている時にコードが動作する / 「〈りんごを持っている〉が偽の場合に動作する」→ りんごを持っていない時にコードが動作する
それができたら、【もし〈真〉なら】の中に【一時停止(ミリ秒)100】と【チャットコマンド”jump”を実行する】を組み合わせてね。 順番は【一時停止(ミリ秒)100】が先に来るように気を付けてね。
【一時停止(ミリ秒)100】のコードは、指定した時間だけプログラムを一時停止するコードです。
時間はミリ秒であらわされているので、「1000 = 1秒」になります。
【チャットコマンド”jump”を実行する】のコードは、指定したコマンドを自動で起動するコードです。
【チャットコマンド”jump”を入力した時】とセットで使います。
あとは、今できたプログラムを【ずっと】で囲めば1つ目のプログラムは完成だよ!
1つ目のプログラムができたのだ! あとは残っているで【チャットコマンド”jump”を入力した時】【現在の位置から[~0,~0,~0]にテレポートする】コードを組み合わせて2つ目のプログラムを作るのだ。
【チャットコマンド”jump”を入力した時】のコードは、指定したコマンドをチャットに入力するとその中身を動かすコードです。
【現在の位置から[~0,~0,~0]にテレポートする】のコードは、指定した座標にワープするコードです。
これでプログラムは全部完成したのだ! あとは条件を設定していくだけなのだ!
発動条件と座標を指定しよう
プログラムが2つあるから【ずっと】のプログラムの中身から変更していこうか。 まずは【《ブロック》が座標[~0,~0,~0]の地点に存在するか、確認する】のブロック部分を《ダイヤモンド》に変更しよう
ブロックアイコンをクリックするとブロックを変更できるのだ
次に座標の設定なのだ。 まずは【《ブロック》が座標[~0,~0,~0]の地点に存在するか、確認する】の座標部分に[2280,63,-21]を入力するのだ。
最後に【一時停止(ミリ秒)100】の数値を「1000」に変更しておこう。 ここの数字は「1000ミリ秒 = 1秒」を基準にすると覚えやすいよ!
5秒にするには「1000 × 5 = 5000」って感じなのだ!
これで【ずっと】のプログラムの設定は終わり! あとは【現在の位置から[~0,~0,~0]にテレポートする】の座標に採掘場の座標[2212,-29-144]を入れればプログラミング終了だよ!
間違えても大丈夫だから落ち着いてやってね。入力ができたら右下のスタートボタンを押そう。ボタンの色が緑色から赤色になったら準備完了だよ
動かす前にはプログラムが合っているか確認しておくのだ!
動かしてみよう!
『マイクラ』に戻ってプログラムを動かすのだ。 ボタンを押してみるのだ!
採掘場の目印の場所にワープすれば成功だよ!
ちゃんとワープしたのだ! …ってあれ、もしかしてこれ、来るのはワープで簡単だけど帰るのは大変なのだ…?
…そうだね。
家にワープするプログラムを作ろう!
………流石に3往復は疲れるのだ…。
あれは確かにしんどいね…。 もうこんなことがないように家に帰るプログラムも作っておかないとね…。
それじゃあ、今回は「採掘場にワープしてから5秒後に家に戻ってくる」ようにしてみようか。
それならさっき作ったプログラムに少し付け足すだけで完成しそうだから、疲れててもできそうなのだ!
まずは【現在の位置から[~0,~0,~0]にテレポートする】を複製してから、【一時停止(ミリ秒)100】のコードを持ってきてね
これを【チャットコマンド”jump”を入力した時】の中の【現在の位置から[~0,~0,~0]にテレポートする】の下につけるのだ。
「採掘場にワープしてから5秒後に家に戻ってくる」ようにするから、【一時停止(ミリ秒)100】を先に組み合わせないといけないところに注意だよ!
あとは時間と座標を設定すれば終わりなのだ。 まず時間を5秒にするから、【一時停止(ミリ秒)100】の数値を「5000」にするのだ
最後に座標なのだ。 今回はボタンのところに戻ってこようと思うから、【現在の位置から[~0,~0,~0]にテレポートする】の座標に[2282,64,-21]を入力するのだ
これで完成だね! あとはプログラムを動かして家に帰ってこれればいいけど…
無事に帰ってこれたのだ!
さいごに
ボタンを押すだけで好きな場所に行けるようになったから、いい場所をいっぱい見つけてくるのだ!
みんなもワープで帰ってくる時間を長くしたり、ボタンを増やしていろいろな場所にワープできるようにしてみよう!
最後に練習問題を用意してみたから、よかったら挑戦してみてね!
プログラムを変更してみよう!
問題1
採掘場から帰ってくるまでの時間を1分以上にしてみよう!
1秒にするには「1000」と設定しよう!
問題2
ボタン裏のピストン装置の向きを、向かって右側(ボタン側から見て左側)に変更してみよう!
《ダイヤモンド》の座標に注意しよう!
問題3
【チャットコマンド”jump”を入力した時】を新しく用意して、「”家”(または”Gohome”)と入力すると家に帰られる」ようにしてみよう!