スクラッチでにゃんこ大戦争風ゲームの作り方

にゃんこ大戦争

今回つくるゲーム

難易度3 out of 5 stars

今回はスクラッチでにゃんこ大戦争風ゲームを作っていきます。にゃんこ大戦争の特徴は、たまったお金に応じてさまざまなキャラを次々と出現させられるところにあります。一般的なゲームはプレイヤーは一人ですが、このゲームは味方も敵も複数いるので、攻撃と防御のバランスを整えるのが難しいです。パラメーターを絶妙に設定して、面白いゲームができるよう挑戦してみてください。

まずは実際にゲームをプレイしてみてください。右上に貯まったお金に応じて下のキャラクターを選択して出撃させてください。城を落とせば勝利です

はじめに

まず、以下をリミックスしてください

にゃんこ大戦争風ゲーム_素材

こちらにはゲームを作るのに必要な素材が揃っています。
最初に以下のように表示されない場合は、それぞれのスプライトの表示・非表示を設定しなおしてください。

ネコ(味方)の動きをつくる

まずはネコの動きを作っていきます。キャラクターは、ネコタンクネコキモネコの3種類を用意していますがまずはネコで動きを作り、最後にタンクネコ・キモネコにも動きを複製していきます

敵を設置する

まず、仮に敵を1体配置しておきます。敵にぶつかった時のアクションなどを作るためです。

下図のように、恐竜を表示させ、位置と大きさと向きを調整します。あくまでも仮に一旦設置しているだけで、のちほど敵の動きはきちんと作ります。

ネコのコスチュームについて理解する

次にネコのスプライトに移動して、コスチュームのタブを開いてください。
コスチュームが最初から5つ用意されています。画面右側から登場しますが、敵にぶつかるまではただ歩いているだけです。その状態を状態=0と規定します。歩き1・2のコスチュームを交互に入れ替えて歩いているように表現します。次に敵にぶつかると戦闘状態に入ります。その状態を状態=1と規定します。攻撃1・2のコスチュームが交互に入れ替わることで攻撃を表現します。最後に敵にやられて昇天するときの状態を状態=2と規定します。

もう一つ注目すべきポイントは、キャラクターの下部分にコスチュームの中心マークがきているということです。プログラムをするときに、キャラクターの位置=中心マークの位置になります。今回は3つのキャラクターの背丈が全然違うので、キャラクターの位置を接地面に設定しておかないと、登場させるときに複雑な指示をしなければならなくなります。今回のゲームに限らず、キャラクターの位置を接地面にした方がゲームを作りやすい場合も多いので、このテクニックは使えるようにしましょう。

キャラクターを作り慣れていない方は、是非こちらの記事も参考にしてみてください。自分だけのキャラクターを自由に作れるようになると、ゲーム作りがもっと楽しくなります。

ネコを登場させる

コスチュームの構造を理解できたら、ネコのプログラムに入っていきます。
最初にネコIDという変数を設定します。1匹目のネコIDを0として、ネコ・タンクネコ・キモネコのどれかに関わらず、出現した順番に1,2,3,4・・・とIDを振っていきます。
下図のように、背景(ステージ)にネコIDの初期値:-1を設定します。

次に、ネコボタンのスプライトに移動して、以下のようにコードを書きます。
ネコボタンが押されるとネコのクローンが作られます。

ボタンはx:0 ,y:0にしたときにちょうどいい位置になるように初めから描かれています。

次に、ネコのスプライトに移動し、以下のようにコードを書きます。
クローンされたときに、順番に画面上の方から1列に4体まで少しずつ間隔をあけて登場させることで、キャラクターが重なってしまうことを回避しています。

1マス進むの考え方はゲームづくりの基本の型なので覚えましょう。

①まず5歩動かす
②敵にあたったら5歩戻る
③ブロックにあたらなかったら5歩戻って5歩(1歩×5回)進む

このように、つねに敵に当たっているかどうかを感知しながら進んでいきます。今回は敵に当たるだけではなく、敵の城の手前(X<-160)でも止まるようにします。

次にネコ状態によってコスチュームを変更させます。上記に加えて以下をネコのコードに追加していきます。

これで、実際にネコボタンを押してネコを出撃させてみてください。以下のように出撃し、恐竜にあたったら攻撃を開始すれば成功です。

戦闘状態で攻撃と防衛をする

敵との戦闘状態に入ったときに敵を攻撃しますが、敵が攻撃を受けたということを判断できるように、「攻撃波」という考え方を使います。攻撃状態に入ったネコは数秒ごとに攻撃波を出します。そしてその攻撃波を受けると敵のHPが減るという仕組みです。攻撃波を出す間隔で攻撃力を調整できます(間隔が短いと攻撃力が強い)

この攻撃波はあくまで攻撃を受けたことを判断する架空のものなので、最終的には幽霊の効果を使って透明にします。

また、同様に救済波という考え方を取り入れます。攻撃状態に入ったときに攻撃と同時に救済波が画面下から上に向かって飛んでくるようにします。救済波を受けることで自分のHPが少し回復します。戦闘状態の味方が多ければ多いほどたくさんの救済波が飛んでくるので、HPが減りづらくなります。これは、味方が多い方が敵の攻撃を分散して受けるということにつながります。

これの考え方をネコのコードに追加していきます。ネコが攻撃波を出すのと同様に敵も攻撃波を出してくるので、敵の攻撃波に触れるとHPが下がるというコードも書いておくようにしましょう。
そして、HPが1未満になると昇天します。

変数を作るときに注意が必要です。ネコ状態・ネコHPはクローンごとに設定される変数になりますので「このスプライトのみ」にチェックを入れるようにします。ネコIDはすべてのクローンを横断して設定されるので「すべてのスプライト用」でネコ攻撃x・ネコ攻撃yはネコ攻撃波・ネコ救済波のスプライトに座標を引き継ぐものなので「すべてのスプライト用」にします。

最後に昇天のときの動きも追加しておきます。

これでネコのコードは完成です。コード全体としては以下のようになります。

ネコ攻撃波とネコ救済波の動き

次にネコ攻撃波とネコ救済波のコードを設定していきます。詳細の説明は割愛しますが、攻撃を行うときにネコの位置を(ネコ攻撃x :ネコ攻撃y)として引き継いでいるということを理解しましょう

これで、再度ゲームをプレイしてみましょう。
以下の動画のように攻撃波と救済波が出てこれば成功です。繰り返しになりますが、これらは最終的に幽霊の効果で透明にします。

恐竜(敵)の動きを作る

次に恐竜の動きを作っていきます。敵は恐竜とひよこと鳥の3種類がいますが、恐竜で動きを作り、ひよこと鳥にも転用していきます。

恐竜を出現させる

ネコの場合はボタンを押すと出撃しましたが、敵は自動的に出てこなければなりません。
背景のコードに移動して、以下のようにコードを組みます。敵IDの考え方はネコIDと同じです。加えて、旗が押されたときに恐竜のクローンを作ります。ここにこの後順番にひよこや鳥のクローンも作っていきます。

そして、恐竜のスプライトに移動し、ネコと同じ考え方でコードを組んでいきます。
恐竜のHPは一旦ネコと同じ10にしていますが、攻撃を受けたときのダメージも含めて、あとから設定し直すようにしましょう。

敵攻撃波と敵救済波の動き

こちらもネコと同様にコードを書きます。

ここまでできたら以下の実際にプレイしてみましょう。以下の動画のように2体のネコで恐竜をやっつけられれば成功です。

お金を貯めて出撃させる

これまでは、ネコボタンを押せばどんどん出撃させられましたが、実際はお金が50円貯まるとネコが出撃できます。(タンクネコは100円、キモネコは200円で出撃です)


お金を貯める

まずお金上限の2つの変数を作り、背景(ステージ)のコードに以下のように追加していきます。

次に、お金上限の値を画面上に表記していきますが、各変数の横のチェックボックスにチェックを入れて表示し、表示された変数を右クリックして「大きな表示」を選択し、ドラッグをして以下のように移動させます。

緑の旗を押してみてください。上限が200円となり、お金がどんどん貯まっていき、200でストップします。

お金が貯まったら出撃できるようにする

次に50円貯まったらネコが出撃できるようにします。
ネコボタンのコードを以下のように変更してください。これで50円貯まるまでは灰色で、50円貯まるとオレンジ色のボタンになって押せるようになります。そして、ボタンを押すとお金が50円減ります。

実際に緑の旗を押してプレイしてみてください。以下のように動けば成功です。

城を攻撃する(攻撃される)

敵の城の手前まで進行すると、城を攻撃できます。

城のHPを設定する

城にもHPがあり、敵の城のHPを0にすれば勝利で、ネコの城のHPが0になれば負けとなります。

敵の城、ネコの城に以下のコードを書きます。考え方はキャラクターと全く同じです。

城のHPを見える化する

次に城のHPを見える化していきます。HPゲージを作って、HPが減るとゲージがどんどん減っていくようにします。以下の「体力ゲージの作り方」の記事に詳しく考え方を記載しているので、参考にしてください。

まず、ゲージ枠を表示させます。(すでに表示されていますが、念のためコードでも書いておくともしずれたときにも旗を押せばもどりますので、必ずコードは書いておくようにしましょう)

次にゲージのコードを書いていきますが、そのために、ゲージ用という白紙(コスチュームのない)のスプライトを用意します。

このゲージ用スプライトに以下のようにコードを記載していきます。この体力ゲージの作り方もよく使う型ですので覚えてしまいましょう。

勝利と敗北を設定する

最後に勝利と敗北を設定していきます。上記のコードで以下のようにすでに定義されています。

敵城HP<1   :勝利
ネコ城HP<1 :敗北

勝利と敗北のスプライトに以下のようにコードを書きます。

これで城の攻撃まで完了しました。実際に城を攻撃してみましょう。以下のようになれば成功です。

タンクネコ・キモネコの動きを設定する

ここまでこれば、あとは同じことを他のキャラクターに設定していくだけです。まずは味方のタンクネコとキモネコの設定をしていきましょう。
タンクネコ、キモネコのスプライトにネコと全く同じプログラムを書きます。
プログラムをコピするときは以下のようにコピーしたいブロックをコピー先のスプライトにドラッグします。


タンクネコとキモネコの特性を考えて、パラメーターを設定しましょう。変更する箇所は以下の4箇所です。例えばタンクネコは攻撃力は弱いが体力と防御力が強い、キモネコは体力は小さいが、攻撃力と回復力がすごく強いなど自由に設定してください。

次に、タンクネコボタンとキモネコボタンを設定していきます。上限が200なのでキモネコのコスチュームが変更する条件は199より大きいとします。

実際に動かしてみて、大きさだけは最後に調整しましょう。タンクネコは70%、キモネコは80%に設定するとちょうどいい大きさになります。

ひよこ・鳥の動きをつくる

最後に残りの敵の動きを作ります。ひよこと鳥のコードも先ほどと同様、基本的には恐竜の完全コピーでパラメーターの設定と大きさの設定だけ自分なりに調整してみましょう。大きさは、ひよこ・鳥ともに50%に設定するとちょうどいい感じになります。

敵は自動的に出現させるので、背景(ステージ)のコードに以下のように自由に敵の出撃を規定しましょう。

仕上げに、攻撃波・救済波の幽霊の効果をすべて99にしましょう。

これで完成です。以下のように大戦争が繰り広げられるよう、いろいろなパラメーターをいじってみましょう。

すべてのコード

すべてのコードは以下から確認できます。BGMや効果音を追加したり、にゃんこ大戦争の他の特徴である城の上からビームを出したり、レベルを上げてお金の上限をあげるなど、自由にカスタマイズしてみてください。

にゃんこ大戦争風ゲーム

コメント

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