今回つくるゲーム
難易度
今回はスクラッチでマインクラフト風ゲームを作っていきます。マイクラの特徴は、地面や岩、木などのブロックを採掘して、採掘したブロックで別の建造物などを作るところにあります。本来は3Dですが、ここでは、2Dの世界でブロックを採掘・設置ができるようなゲームを作っていきます。ゲームのベースの部分だけの解説になりますので、そこからブロックを組み合わせて別のブロックを作ったり、敵を出現させるなど自分なりにアレンジをしてみてください。
また、キャラクターの動かし方・ブロックの設置の仕方はマリオ風ゲームと基本的には同じですので、そちらも合わせてトライしてみてください
まずは実際にゲームをプレイしてみてください。矢印で移動、スペースでジャンプします。
ブロックにカーソルをあわせて、Sボタンで採掘(地面は3秒、岩は5秒で採掘できます)
置きたいところにカーソルをあわせてZボタンで設置されます。
はじめに
まず、以下をリミックスしてください
こちらにはゲームを作るのに必要な素材が揃っています。
ブロックを並べる
まずはステージとなるブロックを並べていきます。
横スクロールができるステージを作るには”マップチップ”という技を使います。マップチップの考え方についてはこちらの記事で詳しく解説しているので参考にしてください。
また、マイクラはドット絵のブロックが特徴ですので、今回のゲームでもブロックはドット絵にします。
ドット絵の作り方についてはこちらの記事で詳しく解説しています。
ブロックスプライトの解説
ブロックのスプライトを開きコスチュームを確認してください。すでにドット絵にしたブロックを準備していますので活用してください。ここでポイントはすべてのブロックの上辺に薄く灰色の層を設けているところです。キャラクターが横移動・ジャンプするために必要な接地面となります。
次に変数の下にあるマップというリストにチェックを入れてください。すでに12行×30列のマップチップが用意されています。それぞれの数字が、コスチュームの番号に対応していて、0はチップを置かない場所です。マリオゲームと違うのは、マイクラでは空白の部分にブロックを設置していくので、透明ブロックを敷き詰めています。
スクラッチでは作れるクローン数は300が上限です。ですので、今回のマップチップは0(下2行)を除くと10行×30列=300のギリギリに設定しています。これ以上長いステージを作る場合は少し高度な技を使わないといけないので、それはまた別の記事で解説します。
ブロックを並べるプログラム
ではコードを書いていきます。マップチップを並べるコードについてはこちらで詳しく解説しています。
ブロックx,ブロックyの変数は”このスプライトのみ”にチェックを入れるのを忘れないようにしてください。そうすることで、クローンごとに座標を記憶させられます。
緑の旗を押してみてください。以下のようにブロックが敷き詰められるはずです。
空白の部分が灰色で塗りつぶされているので、この部分を透明にしていきます。
これで実行すると、空白部分が透明になります。
プレイヤーを動かす
次にキャラクターを動かしていきます。こちらもマリオゲームの解説に詳しく書いているので詳細説明は省略しますが、ターゲットで動きを作り、プレイヤーはそれにあわせて動くようにします。
ターゲットのコードを作る
まずはターゲットのコードを書いていきます。ここで各ブロックの上辺に作った設置面の色を活用します。また、マリオは右だけにスクロールさせましたが、マイクラでは左右にスクロールさせたいので、x=-100〜100の間で動くようにします。幽霊の効果はここでは0にしていますが、最終的にターゲットは隠すので99にします。
緑のボタンを押してターゲットを動かしてみてください。
プレイヤーのコードを作る
次にプレイヤーのコードを組んでいきます。プレイヤーのスプライトに移動して、以下のようにコードを書いてください。
そして、先ほど作ったターゲットの幽霊の効果を99にします。
以下のように動けば成功です。
スクロールさせる
次にプレイヤーの動きに合わせてスクロールできるようにします。
ブロックをスクロールさせる
まず、ブロックのスプライトに移動し、クローンされた時のコードに以下のように左右にスクロールさせられるようにします。
背景をスクロールさせる
次に背景をスクロールさせていきます。背景をスクロールさせるとより完成度が高くなりますが、あまりこだわらなければここはスキップしても問題ありません。
まず背景(ステージ)のコードに移動し、以下のようにコードを書きます。コードに関する詳細解説はこちらを参考にしてください。今回のゲームでは左右にスクロールさせるので、スクロール速度2や計算する2が追加されています。
次に、背景1、背景2のスプライトに以下のようにコードを書きます。
以下のようにスクロールさせられれば成功です。
採掘と設置
ではここからブロックを採掘・設置していきます。
採掘のコード
ブロックのスプライトに移動し、以下のようにコードを変更・追加していきます。
Sキーを押した時にマウスの位置にあるブロックを採掘するのですが、ブロックを特定する方法については、マリオのハテナブロックを特定するのと同じ考え方になります。また、プレイヤーの近くのブロックだけ採掘できるようにしています。
さらに、Sキーを押してしばらく経たないと採掘できないようにするために「カウント」という変数を使い、地面は3秒で、岩は5秒で採掘できるようにします。採掘すると言うのは、コスチュームが透明に変更されると言うことです。
次に、地面ブロック数と岩ブロック数の変数にチェックを入れて表示させます。
そして、表示された変数を右クリックして大きな表示にして、それぞれのボタンの横にもってきます。
では実際に採掘してみましょう。
設置のコード
続いて、採掘したブロックを設置していきます。ボタンを押すと黄色く光り(もう一つのボタンの光は消える)、光っている方のブロックを設置することができるようにします。まず、地面ボタンと岩ボタンのコードを書いていきます。座標を(x:0、y:0)にしているのは(x:0、y:0)にしたときにボタンが指定の位置に来るように初めからコスチュームを作っているからです。
そして、ブロックのコードに移り、以下のコードを追加します。これでzキーを押すとマウスのカーソルがある場所にブロックが設置されます。正確に言うと透明のブロックから地面ブロック(または岩ブロック)にコスチュームが変更されたということです。
これで完成です、以下のように採掘したブロックが設置できるようになっているはずです。
すべてのコード
これで完成です。すべてのコードはこちらから確認できます。