マインクラフト・プログラミング入門
第2回 ゾンビピッグマンを倒そう☆ワールドの座標☆1000個のTNTを置く☆爆発するニワトリ[ くりかえし ]☆通ったあとに花を植える☆溶岩タワー☆ブタをバウンドさせる☆プレイヤーを落下させる [ 変数、JavaScript ]☆ゾンビピッグマンを倒そう [ 関数 ]2018.08.22
鎌倉シチズンネット（KCN）© 2018-2018 Kamakura Citizens Net All rights reserved1ワールドの座標 (1)•3次元座標： x 座標、y 座標、z 座標 ( x, y, z )上南z

東y( 0, 0, 0 )

西x

北下
2

ワールドの座標 (2)•相対座標と絶対座標(1) 相対座標: プレイヤーの現在位置を基準にした座標 「~」をつける
MakeCodeでの指定(~0, ~2, ~0) : プレイヤーの頭の上の位置(~5, ~0, ~0) : プレイヤーの位置よりも5ブロック東の位置(~0, ~3, ~-3) : プレイヤーの位置よりも3ブロック上、3ブロック北の位置

3

ワールドの座標 (3)(2) 絶対座標: ワールドの中心 ( 0, 0, 0 ) を基準にした座標
MakeCodeでの指定
F1を押すと画面左上にプレイヤーの現在位置の絶対座標が表示される。
下の例ではプレイヤーはワールドの中心から8ブロック西、4ブロック上、15ブロック北の位置にいる。

4

TNTを1000個置く (1)(1) TNTを1000個置く

5

TNTを1000個置く (2)(2) TNTを ( ~1 ~1 ~1 ) から ( ~10 ~10 ~10 ) の範囲に並べる
チャットコマンド 1000tnt を作成する。

「プレイヤー」のカテゴリから「チャットコマンドを入力したとき」を選ぶ。
「ブロック」のカテゴリから「ブロックを並べる」を選ぶ。
マインクラフトでチャットコマンド 1000tnt を入力する。
6

TNTを1000個置く (3)(3) 練習問題1
整地するチャットコマンド flat を作ってみよう。
空気ブロックを ( ~-10 ~0 ~-10 ) から ( ~10 ~10 ~10 ) の範囲に並べる。

☆注意！
プログラムの変更が反映されていない感じのときは、MakeCode のボタンを2回押してみよう。

↑ クリック↑ もう1度クリック

7

爆発するニワトリ (1)(1) 爆発するニワトリ

ニワトリを矢で射ると3秒後に・・・

大爆発

8爆発するニワトリ (2)(2) チャットコマンド chicken を作成(3) ニワトリを ( ~5 ~0 ~5 ) から ( ~10 ~0 ~10 ) の範囲のランダムな（決まっていない）位置に出現させる。

「生き物」と「ポジション」のカテゴリを使います。
9

爆発するニワトリ (3)(4) プレイヤーに弓を持たせます(5) プレイヤーに矢を64本持たせます

以上のブロックをチャットコマンド chicken の中に入れます。

10

爆発するニワトリ (4)(6) ニワトリが死んだとき、3秒後に大爆発を発生させます(7) マインクラフトでチャットコマンド chicken を入力します
本当はニワトリが現在いる位置で爆発を発生させたいのだが・・・
11

通ったあとに花を植える (1)(1) 通ったあとに花を植える（クリックすると動画が見れます）
12

通ったあとに花を植える (2)(2) プレイヤーの現在の位置にタンポポを置く
チャットコマンド trail を作成します。「ブロック」カテゴリから「ブロック～を～の地点に置く」のブロックを選びます。

13

通ったあとに花を植える (3)(3) これを100 回繰り返すようにします。
「ループ」カテゴリから「くりかえし～回」のブロックを選びます。

(4) マインクラフト側の操作①チャットコマンド trail を入力します。
②Escキーを押してチャット入力モードを終わらせます。
③プレイヤーを移動させます。
④プレイヤーが通ったあとにタンポポが植えられているのを確認します。
14

溶岩タワー (1)(1) 溶岩タワー（クリックすると動画が見れます）

15

溶岩タワー (2)(2) 溶岩のブロックを ( ~5 ~20 ~0 ) の位置に置きます。
チャットコマンド tower を作成します16

溶岩タワー (3)(3) 水ブロックを ( ~5 ~135 ~0 ) の位置に置きます。

17

溶岩タワー (4)(4) 一時停止した後、空気ブロックを ( ~5 ~135 ~0 ) の位置に置きます。
一時停止するブロックは「ループ」カテゴリから選びます。

(5) マインクラフトでチャットコマンド tower を入力します。
丸石のタワーになります。なぜ？
一時停止する時間を変えて効果をみてみよう。
18

ブタをバウンドさせる (1)(1) ブタをバウンドさせる
プレイヤーがバウンドすると、ブタもバウンドします。

19

ブタをバウンドさせる (2)(2) チャットコマンド slime を作成し、スライムブロックを並べます( ~-20 ~0 ~-20 ) から ( ~20 ~0 ~20 ) の範囲に並べます。

20

ブタをバウンドさせる (3)(3) プレイヤーがバウンドしたとき、ブタを出現させます
ブタは ( ~-10 ~20 ~-10 ) から ( ~10 ~20 ~10 ) の範囲のランダムな位置に出現させます。

ランダムに座標を選ぶブロックは「ポジション」カテゴリにあります。
(4) チャットコマンド slime を入力し、プレイヤーをジャンプさせると、ブタが上の方から落ちてきてバウンドします。
21

プレイヤーを落下させる (1)(1) ゲームモードの変更
チャットコマンド cr と su で、ゲームモードをクリエイティブにしたり、サバイバルにしたりします。

22

プレイヤーを落下させる (2)(2) 変数の作成
fall と report という2つの変数を作成します。変数とはデータを入れておく箱だと思ってください。
「変数」カテゴリで「Make a Variable」ボタンをクリックし、右のウインドウで変数の名前を入力します。

23

プレイヤーを落下させる (3)(3) 変数の参照と値の設定
変数の名前を入力し OK ボタンを押すと、「変数」カテゴリは次のように表示されます。これらのブロックを使って、変数の値を参照したり、変数に値を設定します。

24

プレイヤーを落下させる (4)(4) 落下したブロック数のカウントと初期化(5) 落下したブロック数の表示

25

プレイヤーを落下させる (5)(6) JavaScript の利用
MakeCode の2行目にある{ } JavaScript をクリックすると、JavaScript でプログラムが記述できます。前頁の「文字列をつなげる」のところは次のように記述します。
player.onChat("pm", function(){player.say( "あなたは " + report + " ブロック落下しました");}(7) プロジェクトを保存する
FallIsInTheAir という名前で保存します。

26

プレイヤーを落下させる (6)(8) マインクラフトの操作①チャットコマンド cr を入力してクリエイティブモードにします。
②プレイヤーを高い位置に移動します。
③チャットコマンド su を入力してサバイバルモードにします。
④プレイヤーは死んでしまうので、復活させます。
⑤チャットコマンド pm を入力して、何ブロック落下したかを表示させます。

27

プレイヤーを落下させる (7)(9) 練習問題1
ブロックのカテゴリにある「文字を描く」を使って、落下したブロック数を表示してみよう。
(10) 練習問題2
チャットコマンド tot で落下したブロック数の合計を表示しよう。合計を記録しておくために、変数 total を作成し、プレイヤーが死んだときに変数 totalの値を更新します。

28

ゾンビピッグマンを倒そう (1)(1) ゾンビピッグマン
ブタに稲妻を当てるとゾンビピッグマンが出現します。

29

ゾンビピッグマンを倒そう (2)(2) 関数の準備
setup、atmosphere、zombiepig の3つの関数を作成する準備をします。
関数はある1つのまとまった処理を行うもので、関数を使うとプログラムが見やすく、分かりやすくなります。
関数の定義と呼び出しは「高度のブロック」ー「関数」のカテゴリにあります。

30

ゾンビピッグマンを倒そう (3)(3) zombiepig関数①ブタを（~0 ~0 ~-5）に出現させます。
②ライトニングボルト（稲妻）を同じ位置（~0 ~0 ~-5）に出現させます。
③ゾンビピッグマンが現れます。

31

ゾンビピッグマンを倒そう (4)(4) setup関数①ゲームの難易度をイージーにします。
②ゲームモードをサバイバルにします。
③ダイヤモンドの剣を自分に渡します。

32

ゾンビピッグマンを倒そう (5)(5) atmosphere関数①ゲーム内時刻を真夜中にします。

(6) ゲームの開始
ゲームモードが「常に昼間」でないことを確認し、チャットコマンド play を入力します。

33

ゾンビピッグマンを倒そう (6)(7) ゾンビピッグマンをもっと増やします①モンスターのゾンビピッグマンが行動不能にされたとき、関数 zombiepigを呼び出します。

(8) 練習問題1
ゾンビピッグマンをもっとたくさん出現させよう。
(9) 練習問題2
ゾンビピッグマンが出現する位置を0～10の範囲でランダムになるようにしてみよう。（参考： ブタをバウンドさせる）34

プロジェクト作成例
プロジェクトURL

11000個のTNTを置く

https://makecode.com/_b7L3oViut8jh

2

爆発するニワトリ

https://makecode.com/_XMLbUi75Vc55

3

通ったあとに花を植える

https://makecode.com/_20Ccd1acu89D

4

溶岩タワー

https://makecode.com/_Ua8d08dtDHog

5

ブタをバウンドさせる

https://makecode.com/_4yF60mAorXMo

6

プレイヤーを落下させる

https://makecode.com/_9Ky4v2XMgDKJ

7

ゾンビピッグマンを倒そう

https://makecode.com/_fAfTaDTtrMKY（ ホーム →
（プロジェクトを読み込む） →URLからインポート → プロジェクトのURLを開きます）

35