スクラッチでボンバーマン風ゲームの作り方

未分類

今回つくるゲーム

難易度3 out of 5 stars

今回はボンバーマン風ゲームを作っていきます。マス上のステージを動きまわり、爆弾を設置して、ブロックを崩し、敵をやつけていきます。今回ポイントとなるのは「1マス動かす」と「敵キャラのランダムな動き」です。これができるようになると、ロールプレイングゲームやすごろくゲームなども作れるようになります。

以下が今回つくるゲームです。左右矢印で移動、スペースキーで爆弾を設置して、敵をやっつけてください。

※スクラッチ初心者の方は、まずこちらの、
もぐらたたきゲーム作り方(初級)
からチャレンジしてみてください。

準備

まずは、こちらにアクセスして、リミックスをしてください。
ボンバーマン風ゲーム(素材)

ボンバーマン風ゲームを作るのに必要なスプライトが一通りそろっています。
キャラクターデザインを変更すると、うまく動かない可能性もあるので、まずはこのまま作っていただくことを推奨しますが変更したい場合はサイズ縦横のサイズをなるべくキープするようにしてください。

ステージにブロックを配置する

まずはステージから作っていきます。ボンバーマンといえば格子状の固定ブロックの間に、破壊できるブロックが埋まっていて、爆弾で破壊していくことで進んでいくことができます。
ここでは固定ブロックと破壊ブロックの配置について解説していきます。

固定ブロックの配置

まず、固定ブロックのスプライトを選択し、コードを書いていきます。以下の図のように、固定ブロックは、始点を(x:-210、y:147)とし、横8列、縦6行で作っていきます。ブロックの辺の長さが30ですので、ブロックとブロックの間は60になります。

この設計図の通りに配置するコードは以下の通りとなります。

ブロックを並べるこのコードの書き方は一つの型として覚えるようにしましょう。
以下のブロック崩しゲームでも詳しく解説しています。

破壊ブロックの配置

固定ブロックは規則正しい格子状に配置されますが、破壊ブロックは固定ブロックの間に自由に配置できなければなりません。今回は下図のように配置することを考えてみます。左上の固定ブロックを(1:1)と規定して、(15:11)までマス目を規定していきます。以下のように破壊ブロックを配置すると、それぞれ(4:2),(6:4),(7:6),(6:8),(4:10)となります。

破壊ブロックのスプライトに移動して、コードを書いていきます。
以下のように列目2行目2という変数を新たに作り、規定してクローンを作るという作業を繰り返していきます。その時にクローンを作ってから次のクローンを規定していくまでに少し時間をあけることがポイントです。クローンされた時の数式が少し先ほどと違うのは、マスとマスの間は30だからです。

緑の旗を押してみてください。きれいにブロックが並べば成功です。

キャラクターを動かすターゲットを設定する

次にキャラクターを動かすターゲットを設定していきます。

ターゲットを設定する理由

なぜわざわざターゲットを設置するかというと、そうすることで、キャラクターが格子をはみ出した形でデザインできるからです。あくまでも、移動ルール、ゲームオーバールールはターゲットが担って、キャラクターはそこについていくだけという考え方です。そうしないと、マス目の中に収まるキャラクターサイズにしなければならず、ゲームとして微妙な見た目になってしまいます。

ターゲットを左右上下に動かす

ターゲットを設定する意味が理解できたら、ここから動きを作っていきます。左右上下の矢印キーを押すことでマス目に沿って移動します。1マスの長さが30ですので、30歩動けば次のマスにいきます。今回は6歩を5回繰り返すことで30歩進めることにします。

1歩を30回にすると、すごくゆっくりになり、逆に30歩を1回にすると早くなりすぎて、一気に2マス以上移動してしまうので注意!

左上(-210,117)からスタートし、左右上下の矢印が押された時にそれぞれの方向にターゲットを向けて1マス動かします。1マス動かすのは別に定義をするようにしましょう。

内容まず大枠のコードを組んで、定義を決めていくというやり方をとると、後から見てもわかりやすいコードになります。

ターゲットがブロックで止まるようにする

このままだと、ターゲットはブロックをすり抜けてしまいます。
ブロックをすり抜けないために以下のようにコードを組みます。これも一つの型として覚えてもらえればと思いますが
①まず30歩動かす
②ブロックにあたったら30歩戻る
③ブロックにあたらなかったら30歩戻って30歩(6歩×5回)進む
というコードです。ブロックがあるか調べながら進むという意味合いです。

ここまでできたら、一度旗を押して、ターゲットを動かしてみましょう。
きちんとブロックを避けながら動かせれば成功です

キャラクターを動かす

次におじさんのキャラクターを動かしていきます。先ほどのターゲットの場所についていくだけなのでとても簡単です。以下のように旗が押された時にコスチューム大きさ向きの3点セットを初期設定し、あとはずっとターゲットにいくだけです。

ただ、これではキャラクターが動いているようには見えないので、左右上下の矢印を押した時に、キャラクターのコスチュームを変えていくことで動いているように見せます。

まずは以下のように大枠の動きを書きます。

次にそれぞれの動きの定義を書いていきます。例えば右向きの動きは、キャラクターを右向き(90度)に向けて右矢印キーが離されるまでコスチュームを左右1〜4まで変化させていきます。他の向きも同様に設定します。

これでおじさんキャラクターのうごきは終了です。
以下の動画のようにターゲットに連動して動けば成功です。繰り返しになりますがターゲットの動きに連動しているだけなので、ブロックに頭がぶつかっても動けるのです。

爆弾を落とす

次におじさんが歩いている時に爆弾を落とせるようにします。
爆弾のスプライトに移動して、以下のようにコードを書きます。
スペースキーが押された時に、自分自身のクローンを作って、ターゲットの場所に行き表示されます。そして、5秒たつと爆破するのですが、その間に2つのコスチュームを繰り返すことで、ボンバーマンらしい爆弾の動きになります。そして5秒経過すると「爆発」のメッセージを送り、クローンを削除します。

ここまでの動画が以下になります。

爆発の動き(火柱)をつくる

火柱をつくっていきますがここからがこのプログラムの最難関です。

右向きの火柱をつくる

まずは右向きの火柱だけをつくっていきます。
さきほどの爆弾の動きで5秒経過したら爆発のメッセージを送りましたが、その時に爆弾のx座標とy座標の値を記録して火柱の中心を規定できるようにします。

次に、爆発のスプライトに移動して、以下のようにコードを書きます。
爆発のメッセージを受け取った時にクローンを作り、爆弾のコードから引き継いだ(爆発x,爆発y)の位置に初期設定し、右向き(90度)に120歩(20歩×6)動かします。1マスが30歩分なので4マス分動かすことになります。それだけだと炎が右向きに飛んでいくようになるので、火柱を立てるために、スタンプを使います。20歩動くたびにスタンプを押していく(残像を残す)ことで一筋の火柱のように見せることができます。爆発が終了したら少し待ってからスタンプを消して、クローン自体も削除しましょう。

これで火柱が立つようになりましたが、このままだとブロックを貫通してしまいますので、ブロックが貫通しないために、以下のようにブロックに触れたら終了するようにしましょう。

青いブロックを破壊する

火柱が青いブロックに当たるとブロックが消えるようにします。
破壊ブロックのスプライトに移動し、以下のようにコードを追加します。火柱の周りの赤色に触れると、少し待ってクローンが削除されます。

ここまでできたら一度プログラムを動かしてみましょう。以下のように、青いブロックにあたると火柱が止まって、ブロックが消えれば成功です。また灰色のブロックに当たっても火柱は止まりますが、ブロックは破壊されません。

左上下方向の火柱も作成する

左上下方向の火柱は、先ほどの右向きの火柱のスプライトを複製して、コードで向きを変えるだけです。(複製をするにはスプライトのアイコンで右クリックを押して複製を選択します。)

爆発の中心を作る

このままだと爆発の中心部分がすこし雑になってしまうので、そこを隠すスプライトを追加します。
スプライトの追加をして、以下のようにグラデーションがかった黄色い丸を作ります。

コードは以下のように書きます。火柱の簡易版のようなコードになります。

ここまでできたら、一度動かしてみましょう。以下のように左右上下に火柱が出れば成功です。

敵キャラを自動で動かす

自動で動くようにする

ここからは敵キャラを動かしていきますが、コンピューターが自動で動かすようにします。
敵キャラも左右上下に一マスずつ動いていくのでコードの書き方はターゲットと基本同じ考え方になります。ただ、左右上下の矢印キーではなく、勝手に動かさなければならないので、その部分に工夫が必要です。以下のように敵キャラは3秒ごとに10体出現させ、右下(240,-123)から左向き(-90度)に向けて1マスづつ移動します。

そして、ブロックに触れた時および、30%の確率で向きをランダムに変更するようにします。これで敵キャラは自由に動き回ることになります。

条件を(1から10の乱数)>7とすることで、1〜10のうち、8・9・10が出たら条件が作動するので30%の確率となります。

1マス進むの定義はターゲットの時と同じですが、どちらにも爆弾に触れた時も進めないように条件を追加しておきましょう

火柱に当たったら削除

次に敵キャラが火柱に当たったら削除されるようにしていきます。クローンされた時にコスチューム1・2を繰り返すことで動きを作り、火柱の赤色に触れるとコスチュームが3に変更となり、クローンが削除されます。

ゲームオーバーを設定する

最後にゲームオーバーを設定していきます。ゲームオーバーになるのはおじさんが敵キャラに触れた時か、火柱に触れた時です。
ただし、そのコードはおじさんには書かずにターゲットに書くのがポイントです。あくまでもゲームはターゲット中心であり、キャラクターはそこに乗っかっているだけだからです。
ターゲットのコードに火柱の赤色と敵キャラに触れたらゲームオーバーを送るという指示を追加していきます。

そして、指示を受けとったときにおじさんのコスチュームが「やられた」に変更されます。
おじさんのスプライトに移動して、以下のようにコードを追加します。

BGM等微調整

最後にBGM等の微調整を加えていきます。
ベースのBGMとゲームオーバーの効果音はステージのコードに書いていきます。

すべてを止めるをここで設定しなおしたので、おじさんスプライトで設定したすべてを止めるは削除しておきましょう。次に爆弾を設置した時と、爆発した時の音を追加していきます。もちろん爆弾のスプライトに書いていきます

最後に、ターゲットをわかりやすく黄色にしていましたが、透明にしましょう。コスチュームの色を変えるのではなく、「幽霊の効果」という便利なコードがあるのでそちらを使います。

これで終了です。

スクラッチでボンバーマン風ゲーム(BOMBERMAN)

今回作成したすべてのコード

今回作成したすべてのコードはこちらからも確認できます。

是非リミックスして、ゲームとしての完成度をどんどんあげてみてください。

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