【マイクラ×MakeCode】ケーキを守れ!(チュートリアル:Save the Cake)

この記事では、MakeCode for Minecraftのチュートリアル「Save the Cake」について解説かいせつします。

作ったケーキがだれかに食べられてしまわないか心配な時ってよくありますよね!

「Save the Cake」では、一定時間たつとケーキの場所までテレポートしてもどるプログラムを作ります。

これでケーキの守りは万全ばんぜんです!

スポンサーリンク

今回つくるもの「一定時間たったらケーキの場所までもどる」

チュートリアル「Save the Cake」

今回は、

  1. 自分のいる場所にケーキを
  2. 一定時間(15秒)たったら
  3. ケーキの場所までテレポートしてもどる

というプログラムを作ります。

 

ケーキを置く

足元にケーキを置くプログラムを作ります。

1.「チャットコマンドを入力した時」ブロックを消す。

2.ブロックカテゴリーにある「ブロックを(座標ざひょう)の地点にく」ブロックを出し、最初さいしょだけ」ブロックの中に配置はいちする。

最初さいしょだけ」ブロックの中には、プログラム開始時に1回だけ実行する処理しょりが入ります。

3.「草ブロック」を「ケーキ」に変更へんこうする。

4.ブロックをく場所を「~0 ~0 ~0」にする。

「~0 ~0 ~0」 は、プレイヤーがいる場所です。

ケーキを置く

 

ケーキの場所を記憶する

ケーキの場所もどるには、ケーキがどこにあったかおぼえておく必要ひつようがあります。

変数へんすうcakeをつくって、ケーキのある場所を記憶きおくしましょう。

変数をつくる

変数へんすうcakeをつくります。

1.変数カテゴリーにある「変数を追加する…」をクリック。

2.変数の名前(cake)を入力して、「OK」をクリック。

変数を追加する

 

変数に関するブロックが出てきました。

変数に関するブロック

変数へんすうとは、プログラムで使うデータを一時的いちじてき保存ほぞんするための場所のことです。よく数字や文字を入れておく箱と言われたりします。

変数へんすうについては「変数へんすうとは?スクラッチ(Scratch)を使って解説かいせつ」でくわしく解説かいせつしています。

 

変数に値を代入する

変数へんすうcakeに、ケーキのある場所を記憶きおくしましょう。

3.変数へんすうカテゴリーから変数へんすうcakeを0にする」ブロックを出し、「ブロックを(座標ざひょう)の地点にく」ブロックの下に配置はいちする。

最初さいしょ、ケーキはプレイヤーと同じ位置いちにあるので「プレイヤーの位置いちブロックを使います。

メッセージを送信する、プレイヤーの位置

4.プレイヤーカテゴリにある「プレイヤーの位置いちブロックを出し、変数へんすうcakeを0にする」ブロックの0の部分に配置はいちする。

ケーキの場所を記憶する

変数へんすうあたいを0にする」ブロック
変数へんすうにあたえられたあたいを代入する。変数へんすうあたい記憶きおくさせることを代入といいます。
「プレイヤーの位置いちブロック
プレイヤーが現在げんざいいる場所の絶対ぜったい座標ざひょうを返します。

 

絶対座標と相対座標のちがい

絶対ぜったい座標ざひょうとは、ワールドのどこかにある原点(x=0,y=0,z=0)からどれだけはなれているかで決まる座標ざひょうです。

ちなみに、ケーキを置く時に使った「~0 ~0 ~0」 は相対座標そうたいざひょうといいます。プレイヤーの位置いち(コマンドを実行した位置いち)からどれだけはなれているかで決まる座標ざひょうです。

座標ざひょうについては「【マイクラ】コマンドを使う上で知っておきたい座標ざひょうの見かた」でくわしく解説かいせつしています。

 

ケーキからはなれはじめた時間を記憶する

どのくらい時間がたったか知るために、ケーキからはなれはじめた時間もおぼえておきましょう。

もう一つ変数へんすうを作ります。

1.変数へんすうカテゴリーにある変数へんすう追加ついかする…」をクリックして、変数へんすう「wander」を作る。

2.変数へんすうwanderを0にする」ブロックを出し、変数へんすうcakeをプレイヤーの位置いちにする」ブロックの下に配置はいちする。

変数へんすうwanderに、ケーキからはなれはじめた時間を代入しましょう。

ゲーム時間(ワールドができてからたった時間)を使います。次の時間を確認かくにんする

3.ゲームプレイカテゴリーにある「次の時間を確認する」ブロックを出し、変数へんすうwanderを0にする」ブロックの0の部分に配置はいちする。確認かくにんする時間は「ゲーム時間」のままでOK。

次の時間を確認する

 

開始時間を記憶する

画像がぞうでは変数へんすう名がwonder(不思議ふしぎ)になってしまっていますが、wander(さまよう)が正しいですm(_ _)m
「次の時間を確認かくにんする」ブロック
指定した時間をマイクラの時間の単位たんい(ティック)で取得しゅとくします。
 
確認かくにんする時間の種類しゅるい
・ゲーム時間(gametime):ワールドが作成さくせいされてから経過けいかした時間
・日中(daytime):ゲーム内の時刻じこく
・日中(day):ワールドが作成さくせいされてから経過けいかした日数
実際じっさい時刻じこく(real life):現実げんじつの時間

日本語では翻訳ほんやくの問題で「日中」がふたつあります。ひとつ目とふたつ目で意味がちがうので注意しましょう。

 

どのくらい時間がたったか判定する

ケーキからはなれて どのくらい時間がたったか判定はんていします。

判定条件をつくる1

1.ループカテゴリーにある「ずっと」ブロックを出す。

「ずっと」ブロックは、中の処理しょりをずっとくり返し実行します。

2.論理ろんりカテゴリーにある「もし真なら」ブロックを出し、「ずっと」ブロックの中に配置はいちする。

「もし真なら」ブロックは、もし条件じょうけんが正しい場合、中の命令めいれいを実行します。正しくない場合は、何もしません。

3.論理ろんりカテゴリーにある「0 = 0」ブロックを出し、「もし真なら」ブロックの真の部分に配置はいちする。

4.「0 = 0」ブロックの = を > に変更へんこうする。

ずっと、もし~なら

 

比較演算子(ひかくえんざんし)

>という記号が出てきました。>のように、条件じょうけんをつくるために使う記号を比較演算子(ひかくえんざんし)びます。

等号・不等号

  • □ : 等しい
  • □ : 等しくない
  • □ : 〇は□より小さい(未満みまん
  • □ : 〇は□以下いか
  • □ : 〇は□より大きい
  • □ : 〇は□以上いじょう

 

より小さいと以下いか、より大きいと以上いじょうのちがいは、基準きじゅんの数をふくむかどうか以下いか以上いじょう基準きじゅんとなる数をふくみます。

  • 18さいより小さい … 0~17さい
  • 18さい以下いか    … 0~18さい

 

経過した時間の計算

ケーキからはなれはじめてから、どのくらい時間がたったか計算しましょう。

「今の時間」から「ケーキからはなれはじめた時間」を引けば、どのくらい時間がたったか分かりますね。

5.計算カテゴリーにある「0 – 0」ブロックを出す。

6.ゲームプレイカテゴリーにある「次の時間を確認かくにんする」ブロックを出し、「0 – 0」ブロックの左にある0の部分に配置はいちする。

7.変数へんすうカテゴリーにある変数へんすう「wander」ブロックを「0 – 0」ブロックの右にある0の部分に配置はいちする。

「0 - 0」ブロック

 

判定条件をつくる2

判定はんてい条件じょうけん完成かんせいさせましょう。

8.ゲーム時間wanderブロックを「0 > 0」ブロックの左にある0の部分に配置はいちする。

9.「0 > 0」ブロックの右にある0の部分を300に変更へんこうする。

ケーキからはなれ始めてから15秒たったかチェック

300の部分は一定時間がったか判定はんていする基準きじゅんあたいが入ります。

ゲーム時間wander単位たんいティック(マイクラの時間の単位たんい)。なので判定条件は「ケーキからはなれはじめて300ティックたったか」です。

 

ところで、300ティックは現実げんじつの時間で何秒になるでしょうか。マイクラの1日は24000ティック現実げんじつの時間で20分です。

  • 24000ティック : 1200秒(20分 x 60秒)
  •    20ティック: 1秒
  •   300ティック : 15秒

300ティックは、現実げんじつの時間で15秒になります。

 

「ケーキまでもどれ!」とメッセージを送る

15秒(300ティック)たったら、「Back to cake!(ケーキまでもどれ!)」とゲーム内チャットにメッセージを送ります。

1.プレイヤーカテゴリーにある「メッセージを送信そうしんする」ブロックを出し、「もし…なら」ブロックの中に配置はいちする。

2.”:)”を”Back to cake!”に変更へんこうする。

「ケーキまでもどれ!」とメッセージを送る

「メッセージを送信そうしんする」ブロック
ゲーム内チャットにメッセージを送信そうしんします。

 

ケーキの場所へテレポートする

プレイヤーをケーキの場所にテレポートさせます。

ケーキの場所は変数へんすうcakeに保存ほぞんしていましたね。

1.プレイヤーカテゴリーにある現在げんざい位置いちからテレポートする」ブロックを出し、「メッセージを送信そうしんする」ブロックの下に配置はいちする。

2.変数へんすうカテゴリーにある変数へんすう「cake」ブロックを、現在げんざい位置いちからテレポートする」ブロックの座標ざひょうの部分に配置はいちする。

ケーキの場所へテレポートする

 

変数wanderを再設定する

これで完成かんせい!…といいたいところですが、変数へんすうwanderのあたいがゲームを開始した時間のままわりません。

このままだとゲームを開始して15秒たったら、ずっとテレポートをくり返してしまいます。ケーキから永遠えいえんにはなれられなくなるのはこまりますね。

ケーキまでテレポートでもどったら、変数へんすうwanderに現在げんざいのゲーム時間を設定せっていし直しましょう。

1.最初さいしょに」ブロックの中にある変数へんすうwanderをゲーム時間にする」ブロックを右クリックし、「複製ふくせいする」をえらぶ。

2.コピーしたブロックを現在げんざい位置いちからテレポートする」ブロックの下に配置はいちする。

変数wanderを再設定

 

マイクラにもどって実行してみよう!

マインクラフトの世界にもどって実行しましょう。

ケーキからなるべく遠くへ移動いどうします。

15秒後、ケーキの場所へもどる

15秒後、ケーキの場所までもどされましたか?

もっと長く歩き回りたい場合は、時間のあたい(300の部分)をもっと大きくしてください。

 

まとめ

チュートリアル「Save the Cake」について紹介しょうかいしました。

正直、「Save the Cake(ケーキを守れ)」というより「Curse of the Cake(のろいのケーキ)」だと思うのはわたしだけでしょうか……?

 

今回使用した新しいブロック

  • 変数へんすうあたいを0にする」ブロック
    変数へんすうにあたえられたあたいを代入する。
     
  • 「プレイヤーの位置いちブロック
    プレイヤーが現在げんざいいる場所の絶対ぜったい座標ざひょうを返します。
     
  • 「次の時間を確認かくにんする」ブロック
    指定した時間をマイクラの時間の単位たんい(ティック)で取得しゅとくします。
    ゲーム時間/日中(ゲーム内時刻じこく)/日中(日数)/実際じっさい時刻じこく
     
  • 「メッセージを送信そうしんする」ブロック
    ゲーム内チャットにメッセージを送信そうしんします。

 

 

タイトルとURLをコピーしました