MakeCodeプログラミングで「倉庫番ゲーム」を作るやり方
メイクコード(MakeCode)のソース
マイクラ:倉庫番ゲームのやり方
クリエティブモード、世界のタイプはフラットでワールドを作る。
パソコンのキーボードのCキー(タブレットの場合はエイジェントアイコン)を押して、メイクコード(MakeCode)を立ち上げる。
注意)メイクコード(MakeCode)for minecraftは教育版マインクラフトでのみ利用が可能です(2023年8月時点での情報)。
メイクコード(MakeCode)のホーム画面が立ち上がったら、右上の「読み込む」ボタンをクリックする。
「URLから読み込む」ボタンをクリックする。
倉庫番ゲーム用のコードのURL(https://minecraft.makecode.com/_bKqc0HVdkPfp)をコピーしてペーストする。
倉庫番ゲームのメイクコード(MakeCode)プロジェクトが立ち上がる。
メイクコード(MakeCode)プロジェクトの右下にある実行ボタンをクリックする。
「倉庫番ゲーム」というタイトル文がワールドに表示され、ゲームクリア時に花火を打ち上げるためのディスペンサー(発射装置)とクロック回路が生成される。また、ホットバーにゲームで使用する「骨」「りんご」、ゲームモードをクリエティブモードに変更する「鉄のスコップ」、「花火」のアイテムが装備される。
2つのディスペンサー(発射装置)に、花火を入れる。
※この処理だけは、手動でお願いします。
ホットバーに装備した「骨」を持ってから右クリック(タブレットの場合は長押し)すると倉庫番ゲームが開始される。
倉庫番ゲームの外枠、ゴール地点のダイヤモンドブロック、荷物であるガラスブロックが生成され、プレイヤーもスタート地点にスポーンされる。
1マス先に空間があれば、りんごを持って右クリック(タブレットの場合は長押し)すれば荷物であるガラスを動かす事ができる。
荷物である2つのガラスブロックを、ダイヤモンドブロックの上まで動かせばゲームクリア。
注意)結構難しいので、ゲームが詰んでしまったら、「骨」アイテムを持って右クリックしてゲームをリセットしてください。
倉庫番ゲームをクリアすると、STEP.8で説明したクロック回路に動力が加わり(レッドストーントーチが設置される)、花火が連射される。
ゲームクリア画面上から
プロジェクトを実行した後に実行されるコード
- 関数「ゴール花火の設置」を呼び出す。
- 関数「アイテムを与える」を呼び出す。
- プレイヤーをワールド座標(2, -60, -18)にテレポートさせる。
- プレイ画面に「倉庫番ゲーム」というタイトルと「ガラスを押して、ダイヤモンドの床まで動かしてね」というサブタイトルを表示する。
- 「1. ディスペンサーに花火を入れて」というサブタイトルを表示する。
- 「2. 骨を持って右クリックでスタート!」というサブタイトルを表示する。
- ビルダーをワールド座標(6, -60, -19)にテレポートさせ、西向きにする。
- ビルダーの真下にレッドストーンを置き、1歩前に進んでから真下に減算モードのコンパレーターを置く。
- 右に1ブロック移動してから、真下に遅延2のリピーターを南向きに置く。
- 右に1ブロック移動してから、印をつける。
- 1ブロック前に進み、2ブロック左に移動し、1ブロック前に進む。
- 処理4で印を付けた場所から、処理5でビルダーが移動した軌跡にレッドストーンを置く。
- ディスペンサー(発射装置)を上向きにして、ワールド座標(1, -60, -19)と(2, -60, -19)に設置する。
※「dispenser 1」は上向きのディスペンサー(発射装置)となる。
- プレイヤーにアイテム「花火」を256個与える。
- プレイヤーにアイテム「骨」を与える。
- プレイヤーにアイテム「りんご」を与える。
- プレイヤーにアイテム「鉄のシャベル」を与える。
アイテム「骨」を使ったときに実行されるコード
- アイテム「骨」を持って右クリックしたとき、
- 関数「初期化」を呼び出す。
※アイテム「骨」を持って右クリックすれば、ゲームを開始、再開出来るようにした。
- プレイヤーをワールド座標(6, -60, -12)にテレポートさせる。
- 関数「ガラスとたいまつをリセット」を呼び出す。
- 関数「外枠レンガの設置」を呼び出す。
- 関数「ガラスとゴールの設置」を呼び出す。
- プレイ画面に「スタート」というタイトルと「3. りんごを持って右クリックでガラスを押す!」というサブタイトルを表示する。
- プレイヤー自身のゲームモードを「アドベンチャー」モードにする。
※本関数「初期化」を実行すると、ゲームを開始、再開出来る。
- 倉庫内のガラスブロックだけを空気ブロックに変える。
※一旦、倉庫内のガラスブロックを消すイメージ。 - ゴールすると花火の入った発射装置に動力が加わる場所にレッドストーントーチが置かれるので、その場所を空気に置き換えて、花火をストップする。
※ゲームクリア後に、もう一度ゲームを再開したいときなどに必要となる処理。
- ワールド座標(6, -60, -12)にてレポートしたプレイヤーから東に1ブロックの位置に、北向きにしてビルダーをテレポートさせる。
- ビルダーは、処理1の位置で印をつける。
- ビルダーは前に2マス進み、左に1ブロック移動して前に1ブロック進む処理を3回繰り返し、左に4ブロック移動し後ろに3ブロック移動し、右に1ブロック移動して後ろに1ブロック移動する処理を3回繰り返し、右に4ブロック移動する。
- 処理2で印を付けた場所から、処理3でビルダーが移動した軌跡に2 ブロックの高さのレンガの壁を設置する。
※本関数「外枠レンガの設置」を実行すると、倉庫番ゲームの外枠のレンガが生成される。
- ワールド座標(4, -60, -13)から(5, -59, -13)にガラスブロックを設置する。
※本処理で設置する4つのガラスブロックを荷物として、処理2で設置するダイヤモンドの床まで移動させるゲームが倉庫番である。 - ワールド座標(1, -61, -16)と(2, -61, -1)にダイヤモンドブロックを設置する。
※本処理で設置するダイヤモンドの床が、荷物を移動させるべきゴール地点である。
アイテム「りんご」を使ったときに実行されるコード
- アイテム「リンゴ」も持って右クリックしたとき、
- 関数「ガラスを動かす」を呼び出す。
- 関数「ゴール判定」を呼び出す。
※アイテム「リンゴ」も持って右クリックすると、荷物であるガラスを動かしたり(動かせない場合もある)、ゴール判定が実施されたりする。
- プレイヤーの1つ前がガラスブロックで、2つ前が空気ブロックだったときに、
- 目の前のガラスブロック(2段分)を2つ前に移動させる。
※リンゴを使ったときに、ガラスブロックの2ブロック先にスペースが有れば、ガラスを前に押すことが出来る。
- 2箇所の地点(下がダイヤモンドブロック:ワールド座標(1, -60, -16)と(2, -60, -1))にガラスブロックがあったら、
- 発射装置が連続で花火を発射する動力起動部分にレッドストーントーチを置く。
※ゴール地点にガラスブロックを移動できれば花火が打ち上がる。
アイテム「鉄のシャベル」を使ったときに実行されるコード
- アイテム「鉄のシャベル」を持って右クリックしたとき、
- 自分自身のゲームモードを「クリエイティブ」モードに変える。
※アイテム「骨」を持って右クリックすると、ゲームモードが「アドベンチャー」モードに変わる。何らかの理由により、ゲームモードを「クリエイティブ」モードに変えたいときに、簡単にモードを変えられるようにした。
:ワールド座標(絶対座標)
ワールドの原点(0, 0, 0)からの各方向への距離を表す。
:カメラ座標(プレイヤー座標)
メイクコード(MakeCode)にしかない座標表記。プレイヤーの足元を起点として、プレイヤーが向いている方向への相対距離を表す。ローカル座標と異なり、プレイヤーが下方向を見ていても、地面を示すことはない。
- right ::プレイヤーの右側はプラス、左側はマイナス
- above:プレイヤーの真上はプラス、真下はマイナス
- in front:プレイヤーの向いている方向はプラス、後ろはマイナス
:相対座標
プレイヤーの足元を起点として、各方角への相対距離を表す。
- x:東西方向、東はプラス、西はマイナス
- y:上下方向、上はプラス、下はマイナス
- z:南北方向、南はプラス、北はマイナス
:ローカル座標
プレイヤーの見ている方向への相対距離を表す。カメラ座標に似ているが、下方向を見ている場合は、地面の場所を示す。地面に対して水平方向を見ていれば、カメラ座標と同じ場所を示す(ただし、左右はカメラ座標とプラスとマイナスが逆)。
- x:プレイヤーが見ている方向から左右、左はプラス、右はマイナス
- y:プレイヤーが見ている方向から上下、上はプラス、下はマイナス
- z:プレイヤーが見ている方向から前後、前はプラス、後はマイナス
メイクコード(MakeCode)のソース:Python
教育版マインクラフトは、教育のために特別に設計されたMinecraftのバージョンです。学生たちにクリエイティブな問題解決やコラボレーション、コミュニケーションのスキルを身につけさせることを目的としています。さらに、MakeCodeやPythonなどのプログラミングも学べることが特徴です。教師向けのツールや教材、教育コンテンツが追加されており、学習環境に適した機能が提供されています。
また、2021年6月より個人利用も可能になりました。