小学生のための簡単「アンダーテール」の作り方
小学生のための簡単「アンダーテール」の作り方今日のポイント
・枠の中だけしか移動できないようにする
目次
【はじめに】完成した作品を見る
アンダーテールは、アメリカ人の作曲家兼ゲーム開発者であるトビー・フォックス氏によってほぼ一人で開発されました。100万本以上の売り上げを記録した人気の作品です。こんなゲームが作れるようになりたいですね。
【考え方】作品の全体像を理解する
主なスプライトこのゲームで重要なスプライトについて説明します。
① スプライト「フレーム」のコスチュームスプライト(ハートと敵の攻撃)が、フレームの外に出ないようにするために用意します。
② スプライト「ハート」のコスチュームハートは、プレイヤーのことです。上下左右に移動して、敵の攻撃から逃げます。敵の攻撃に当たるとHP が減っていき、ゼロになると「ゲームオーバー」になります。
③ スプライト「敵(トリエル)」のコスチューム ④ スプライト「トリエルの攻撃」トリエルの攻撃を3種類作成します。
トリエルの攻撃1 トリエルの攻撃2 トリエルの攻撃3 スプライト間のイベントスプライトのイベントの関係を示した図です。「メッセージ」を出す側と、「メッセージ」を受け取る側をよく確認しておきましょう。
③「敵」が、「攻撃をする」メッセージを出します。攻撃のタイミングは「●秒待つ」や、「●を送って待つ」「●を送る」、の使い方で変わります。色々と試してみましょう。
【プログラミング】してみよう
まずは、元になる作品をリミックスします。コスチュームや音などの素材が入っているよ。
変数を作成する今回使用する変数は5個です。
No変数名変数の種類使い方どんな値が入る?1HP変数全てのスプライト用プレイヤーの体力0になるとゲームオーバー0 ~ 100までの数字2x座標の下限変数全てのスプライト用ハートの移動できる範囲左側の限界-240 ~ 240までの数字スプライトのステージの範囲3x座標の上限変数全てのスプライト用ハートの移動できる範囲右側の限界-240 ~ 240までの数字スプライトのステージの範囲4y座標の下限変数全てのスプライト用ハートの移動できる範囲下側の限界-180 ~ 180までの数字スプライトのステージの範囲5y座標の上限変数全てのスプライト用ハートの移動できる範囲上側の限界-180 ~ 180までの数字スプライトのステージの範囲 すべてのプログラム ①「フレーム」のプログラム上限や下限の値は、フレームの大きさによって変わります。みなさんの描いたフレームの大きさに合わせて、上下や下限の値を変えてくださいね。
② 「ハート」のプログラム ③ 「敵(トリエル)」のプログラム ④ 「トリエルの攻撃1」のプログラム攻撃は3種類用意していますが、この記事では攻撃1のプログラムだけを紹介します。他の攻撃のプログラムを見たい人は、リミックスして中身を確認してみてください。
【リミックス】してみよう
敵の攻撃パターンなどを追加して、好きなように改造してみよう。
ワンポイントアドバイス
右に移動するときのプログラムを考えてみましょう。横方向の位置を決めるものを x座標、縦方向の位置を決めるものを y座標といいます。よって、右の移動は、x座標が関係します。
右に移動するときに大事なのは、フレームの右端を超えないようにすることです。フレームの右端は「x座標の上限」の値です。
ハートが 「x座標 = 185」の位置にいたとします(上図)。 この状態で右に移動すると、x座標が 10 変わるので「x座標 = 195」になります。これは「x座標の上限」を超えた値、つまりフレームからはみ出した状態です。フレームからはみ出さないように、「x座標 = x座標の上限(190)」に戻します。
このプログラミングが理解できれば、上・左・下も同じようにプログラミングすることができます。
よくある質問
Q1. 同じようにプログラミングしたのに、フレームを超えて移動してしまいますコスチュームが中心に配置されていないためだと思います。下図のように、①「コスチュームの x座標と y座標の値を 0」にして、②「画像を中心に移動」させてみてください。
まとめ
・枠の中だけしか移動できないようにする ⇒ x座標の上限や下限を使って、それを超えないようにプログラミングする