バルーンファイト風アクションゲームの第2回目は、敵キャラクターを追加して主人公と同じように風船にぶらさがって空中を飛び回るプログラムを作っていきます。敵キャラクターは自動で予測できない動きをさせます。
登場するキャラクター・コスチューム・背景などはすべてScratchに標準で備わっている素材を使っているので、インターネットから素材をダウンロードするなどの手間は掛かりません。
この記事を読んでいただくと、バルーンファイト風に風船を背負った敵キャラクターが空中を自動で動き回るプログラミングの方法が分かります。
完成品
この章の内容をご自身のScratch環境に反映すると、同じ動きを再現することができます。
完成した動き
「緑の旗でスタート」を押すと、2体の敵キャラクターが自動で空中に飛び出します。
その後も自動でふわふわと上下に動きながらランダムに方向転換して動き続けます。
敵キャラクターが地面に着地することはありません。
使用したスプライトと背景
スプライトは「ネコ」「バルーン」「タコ1」「タコ2」の4つ、それと「ステージ」です。
【ネコのスプライト】
「ネコ」スプライトの作り方は前回説明済みなのでこちらを参照してください。↓↓↓
【Scratch 3.0】アクションゲーム バルーンファイト風 風船を背負って空中をふわふわ移動する方法(Tips)
【バルーンのスプライト】
「バルーン」スプライトの作り方は前回説明済みなのでこちらを参照してください。↓↓↓
【Scratch 3.0】アクションゲーム バルーンファイト風 風船を背負って空中をふわふわ移動する方法(Tips)
【タコ1のスプライト】
「タコ1」のスプライトは、Scratchに標準で備わっている「Octopus」キャラクターを選択してスプライト名を変更します。
コスチュームは少し編集が必要です。
「Octopus」スプライトを読み込んだ時点のコスチュームは5つほどありますが、1つだけ残してその他は削除してしまいます。
残したコスチュームを複製して左右の向きを反転させて、コスチューム名を「右」と「左」にします。
【タコ2のスプライト】
「タコ2」のスプライトは「タコ1」とまったく同じです。
まずは「タコ1」のコスチュームをつくってから、それを複製(コピー)して「タコ2」をつくります。
【ステージ】
「ステージ」に設定する背景の作り方は前回説明済みなのでこちらを参照してください。↓↓↓
【Scratch 3.0】アクションゲーム バルーンファイト風 風船を背負って空中をふわふわ移動する方法(Tips)
完成したスクリプト
完成したスクリプトの全体です。
【ネコのスクリプト】
「ネコ」のスクリプトは前回とまったく同じなのでこちらを参照してください。↓↓↓
【Scratch 3.0】アクションゲーム バルーンファイト風 風船を背負って空中をふわふわ移動する方法(Tips)
【バルーンのスクリプト】
「バルーン」のスクリプトも前回とまったく同じなのでこちらを参照してください。↓↓↓
【Scratch 3.0】アクションゲーム バルーンファイト風 風船を背負って空中をふわふわ移動する方法(Tips)
【タコ1・タコ2のスクリプト】
「タコ1」と「タコ2」のスクリプトは、共通のブロックを使用していて値が違うだけなので、違う部分だけ色を分けて明示します。赤字が「タコ1」スプライト用の値で青字が「タコ2」スプライト用の値になります。
- 縦スピード:このスプライトのみ
- 横スピード:このスプライトのみ
- 方向:このスプライトのみ
- x座標:すべてのスプライト用
- y座標:すべてのスプライト用
【ステージのスクリプト】
「ステージ」のスクリプトはありません。
スクリプトの作り方
ここからはプログラムを作っていく中でポイントとなる部分を説明します。
なお、前回の記事で説明した『主人公が風船を背負って空中をふわふわ移動する方法』については、重複するのでここでは説明を端折ります。代わりにこちらの記事を参照してください。
ポイント①:敵のよこ移動の動きをつくる
敵キャラクターをよこ方向に自動的に動かす方法についてです。
いろいろな場面で左右の方向を判断するために「このスプライトのみ」でつくった「方向」変数の値をつかうようにしています。
「方向」変数には、1~5秒ごとに「右」か「左」の文字を入れるようにして、その値を元にコスチュームを切り替えるようにします。なお、敵キャラクターのコスチュームは下の図のようになっています。
同じように「方向」変数の値を元に右方向のスピードや左方向のスピードを乱数をつかってランダムに変化させています。
また、ステージの右端や左端まで行ったら反対方向の端から登場するようにx座標をコントロールするブロックを追加しました。このようにすることで画面を固定していてもステージを広々と使うことができています。
ポイント②:敵のたて移動の動きをつくる
敵キャラクターをたて方向に動かすには、y座標を変化させます。ここでは「縦スピード」変数を変化させることで実現しています。
y座標が-80より小さくなったら-4~4まで少しずつ数字を増やしていきます。y座標が100より大きくなったら今度は逆に4~-4まで少しずつ数字を減らしていきます。
「縦スピード」変数をどのくらいの間隔で増減させるかは「±0.05から±0.2までの乱数」ブロックでランダムに選ばれた数字によって決まります。
また、y座標がー165より小さくなった場合、つまりステージの下端に触れるところまで落ちてきた場合はスプライトを隠してしまいます。この部分のブロックは、主人公が敵キャラクターをやっつけたときに使用する予定です。
ポイント③:バルーンを敵と連動させて動かす
前回の記事で主人公が身に着けるバルーンと同じように必要な3つのリストに敵キャラクターのバルーンのための要素3~6を追加します。
要素3番と4番を「タコ1」スプライト用に、要素5番と6番を「タコ2」スプライト用にして設定しています。※1キャラクターにつき2つのバルーンを使用します。
ちなみに「コスチュームリストの初期設定」定義ブロックに設定した「balloon1-c」と「balloon1-a」は下の絵柄です。
「バルーン」スプライト側でリストの初期化が終わったら、「タコ1」「タコ2」それぞれのx座標・y座標でそのリストの値を更新しつづけるようにスクリプトをつくります。
こうすることで「タコ1」「タコ2」スプライトがステージ上のどの場所にいても、そのときの座標がリストに入るようになります。
リストの要素番号とコスチュームとスタート時の位置関係は下の図のようになります。
ゲームがスタートしたら「バルーン」スプライトのクローンは、それぞれ自分がどのコスチュームでどの座標位置にいるべきかを、常にリストを読み取り続けることで実現しています。
ここまでのポイントを押さえれば、バルーンファイト風に風船を背負った敵キャラクターが空中を自動で動き回るスクリプトを完成させることができると思います。
失敗しやすいポイント
失敗しやすいポイントは特にありません。
応用編
今回応用編は特にありません。
まとめ
さいごに、今回の記事で説明した『バルーンファイト風に風船を背負った敵キャラクターが空中を自動で動き回るプログラミング』のポイントをまとめます。
- ポイント①:敵のよこ移動の動きをつくる
- ポイント②:敵のたて移動の動きをつくる
- ポイント③:バルーンを敵と連動させて動かす
どうでしたか?上手く再現できたでしょうか?
他にも役に立つTips(ティップス)記事をたくさん書いてますので、ぜひ見てみてください。(記事のタイトルに「Tips」と書いていたり「Tips」タグを貼ってあります)