コンテンツへスキップ

小学生のための簡単レースゲーム「ロードファイター」の作り方

最終更新日:2024年8月21日

今日のポイント

・共通の特徴をもつスプライトはひとつにまとめることができる

【はじめに】完成した作品を見る

【考え方】作品の全体像を理解する

主なスプライト

このゲームで重要なスプライトについて説明します。スプライトの数は少し多めです。

road-fighter1

① ステージ「背景」のコスチューム

ステージのコスチュームは以下の2種類です。「ゲーム画面」には、道路やマップ(画面左側のスタートからゴール)を描きます。

sprite1

スプライト「テキスト」コスチューム

「スタート画面」や「ゲームオーバー画面」など、画面に表示するテキストのコスチュームです。コスチュームの数は多いですが、複雑なコードはありません。

sprite2

スプライト「マップ」コスチューム

マップ上のどこを走っているかを示すスプライトです。ゴールの旗を目指して、スタート地点から上に移動していきます。

sprite3

④ スプライト「プレイヤー」のコスチューム

プレイヤーのコスチュームは2種類です。他の車に当たったり道路からはみ出ると「爆発」します。

sprite4

⑤ スプライト「コース1」のコスチューム

コースは1~3までスプライトを用意します。このスプライトを上から下に移動させることで、車が前に進んでいるように見せます。この記事では、コース1のスプライトを例に説明します。コース2、3も同じように作成します。

sprite5

⑥ スプライト「横移動しない車」のコスチューム

プレイヤーが、「レース中」のコスチュームに当たると爆発します。「回復」のコスチュームの場合は、燃料が増えます。これらは別のスプライトに分けることもできますが、「横移動しない車」という共通の特徴を持っているので今回は同じスプライトで整理してみました。

sprite6

スプライト間のイベント

スプライトのイベントの関係を示した図です。「メッセージ」を出す側と、「メッセージ」を受け取る側をよく確認しておきましょう。

メッセージが多く使われているので、全体を理解するのは難しいです。大事なメッセージは「ゲーム画面を表示する」と「レーススタート」です。まずは、この2つのメッセージについて確認してみてください。

flow

【プログラミング】してみよう

変数を作成する

今回使用する変数は8個です。

No変数名変数の種類使い方どんな値が入る?
1スピード変数
全てのスプライト用
プレイヤーの運転する車のスピード0 ~ 400 までの数字
2燃料変数
全てのスプライト用
変数名の通り
0になるとゲームオーバー
0 ~ 100 までの数字
3コースの移動量変数
全てのスプライト用
プレイヤーの車のスピードに応じてコースが移動する量数字
4スペースキーを押した時間変数
全てのスプライト用
変数名の通り
押し続けるとスピードが上がっていく
数字
5横移動する車の向き変数
全てのスプライト用
-1 の場合は左方向に横移動(※)
1 の場合は右方向に横移動(※)
※コースに触れると向きを変える
-1 か 1 の数字
6回復の車が出現する位置変数
全てのスプライト用
変数名の通り数字
(y座標)
7横移動しない車が出現する位置リスト
全てのスプライト用
変数名の通り数字
(y座標)
8横移動する車が出現する位置リスト
全てのスプライト用
変数名の通り数字
(y座標)

すべてのプログラム

① ステージ「背景」のプログラム

program1-1
program1-2

② スプライト「テキスト」のプログラム

program2-1
program2-2

③ スプライト「マップ」のプログラム

program3

④ スプライト「プレイヤー」のプログラム

program4-1
program4-2
program4-3

⑤ スプライト「コース1」のプログラム

program5-1
program5-2

⑥ スプライト「横移動しない車」のプログラム

program6-1
program6-2
program6-3

スプライト「横移動する車」のプログラム

program7-1
program7-2
program7-3

【リミックス】してみよう

コースや障害物を追加して、好きなように改造してみよう。

scratch

ワンポイントアドバイス

今回の作品では、黄色の車(障害物)と白色の車(回復)をひとつのスプライトにまとめました。この2種類の車は、「画面の上に現れた後、下の方に落ちてくる」という共通の特徴をもっています。スクラッチでは、共通の特徴をもつものをひとつのスプライトにまとめることができます。(これはスクラッチがオブジェクト指向という言語だからです)

ひとつのスプライトにまとめることができますが、違うところもあります。それはプレイヤーがこれらのスプライトに当たった時の処理です。黄色の車は障害物なので、プレイヤーは当たると爆発してしまいます。逆に、白色の車は回復なので当たると燃料が回復します。このような処理の違いは、それぞれプログラミングする必要があります。

「横移動する車」もひとつのスプライトにまとめてもよかったのですが、処理の場合分けが複雑になるので今回はしませんでした。スプライトをどこまでまとめるか、ということに正解はありません。色々と試してみて、自分なりの正解を探してみましょう。

スイカゲーム(上級編)」は、オブジェクト指向を取り入れた作品です。もっとオブジェクト指向について学びたい方はこちらもぜひトライしてみてください。

pg-suika

まとめ

共通の特徴をもつスプライトはひとつにまとめることができます
 ただし、ひとつにまとめることでプログラムが複雑になることもあります
 色々と試してみましょう

その他の人気ゲームの作り方

最終更新日:2024年8月21日

広告

最終更新日:2024年8月21日

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA