子どもが作ったゲームに休憩用のボタンをつけたいけれど、動きだけ止めればよいのか、得点や敵も止めるのか迷うことがあります。一時停止は、位置や得点を戻さず、「プレイ中だけ進める処理」を休ませ、再開ボタンは使えるままにすると整理できます。
この記事では、Scratchの小さなゲームに一時停止を追加するための設計表と組み立て方を紹介します。説明用の架空のゲームを使い、まずは制限時間や音のない作品を対象にします。最初から遊び直す機能や、作品を閉じた後の途中再開は扱いません。
一時停止は「最初に戻す」操作とは分ける
例にするのは、猫を左右に動かし、魚に触れると得点が増えるゲームです。休憩後には、猫が止めた場所にいて、集めた分の得点も残っている状態を目指します。
ここで出発地点への移動や得点の初期化を入れると、途中再開ではなく遊び直しになります。一時停止ボタンには「止まっているかどうかを切り替える」役割だけを持たせましょう。
Scratchの「すべてを止める」は、実行中の処理を終了する命令であり、その位置から続きを動かすための一時停止命令ではありません。今回は使わず、処理を続けるかどうかを条件で選びます。停止命令の動作は、Scratch公式の制御ブロック実装で確認できます。
「もう一度」と「続ける」を両方用意する作品なら、ボタン名も分けてください。最初からやり直す設計は、別記事の戻すもの・残すものを決める再スタート設計表で扱っています。
止める処理と、使えるままにする操作を表にする
一時停止中の画面を、先に紙に描いてみましょう。猫も魚もその場にいて、「休憩中」と「続ける」が見える。それを実現するために、何を止める必要があるかを整理します。
次の表は、本記事独自の一時停止設計シートです。作品にない項目は削除し、追加した仕掛けは行を増やして使ってください。
| 対象 | 一時停止中の扱い | 再開するときの扱い |
|---|---|---|
| 猫の移動 | 矢印キーを押しても動かさない | 止めた位置から操作できる |
| 魚や敵の自動移動 | 位置を変えない | その位置から動きを続ける |
| 接触による加点・減点 | 判定による数字の変更をしない | 通常の判定に戻す |
| 新しい敵やアイテムの出現 | 増やさない | 決めた出現処理を再開する |
| 位置・得点の情報 | 書き換えずに保持する | 初期化せず使う |
| 休憩中の表示 | 表示する | 隠す |
| 「続ける」ボタン | 押せる状態にする | 「休憩する」に切り替える |
特に見落としたくないのが接触判定です。猫の移動を止めても、魚に触れたときの加点処理を動かし続ける設計なら、休憩中にも得点が変わる可能性があります。見た目だけでなく、数字を変える処理も停止対象に入れます。
一方、再開ボタンまで停止対象にしてはいけません。「ゲームを進める処理」と「休憩を終える操作」を分けるのが、この表の要点です。
Scratchでは共通の変数を合図にする
ここからは組み立て方の一例です。Scratchの変数には数値や文字を保持できます。仕組みの基本は、Scratch Foundationの公式資料「Variables and Lists」で確認できます。
「一時停止中」を全スプライト共通で作る
「変数」から「変数を作る」を選び、名前を「一時停止中」、範囲を「すべてのスプライト用」にします。今回は次の値を合図として使います。
- 0:プレイ中
- 1:一時停止中
この数字は記事内の設計例です。Scratchが自動的に意味を決めるものではなく、作る人が対応を決めます。猫、魚、ボタンが同じ変数を見るようにしてください。
緑の旗を押したときに、ステージ側のスクリプトで「一時停止中を0にする」を実行します。これはゲーム開始時の準備です。再開ボタンには、猫の位置や得点を戻す処理を入れません。
動く処理の内側に条件を置く
Scratchには、条件に応じて処理を実行する「もし〜なら」などのブロックがあります。基本的な考え方は、公式資料「Conditional Statements」にまとめられています。
たとえば猫を左右に動かす部分は、次の構造にします。これはブロックの入れ子を文字で表した組み立て例です。移動量の4は仮の値なので、作品に合わせて変えて構いません。
緑の旗が押されたとき
ずっと
もし「一時停止中 = 0」なら
もし「右向き矢印キーが押された」なら
x座標を4ずつ変える
もし「左向き矢印キーが押された」なら
x座標を-4ずつ変える
「ずっと」の内側で繰り返し合図を確認することが大切です。緑の旗の直後に一度だけ確認し、その後ずっと動かす構造にはしません。条件を繰り返し確かめる組み方は、Scratch Foundationの条件分岐ガイドの「Conditional Loops」でも説明されています。
同じ考え方で、魚の加点処理や敵の移動処理にも「一時停止中が0なら」を加えます。猫に条件をつけただけで、別のスプライトまで自動的に止まるわけではありません。
切り替えボタンは停止条件の外に置く
「休憩する」と「続ける」を切り替えるボタン用スプライトを作り、クリックされたときの処理を次のようにします。
お子さまに合う学び方診断
正解・不正解を決める診断ではありません。今の様子から、取り組みやすい学び方の入口をご案内します。
このスプライトが押されたとき もし「一時停止中 = 0」なら 一時停止中を1にする でなければ 一時停止中を0にする
このクリック処理全体を「一時停止中が0なら」で囲まないでください。囲むと、一時停止中に再開側の処理へ進めなくなります。
表示は別の「ずっと」で変数を確認し、0なら「休憩する」、1なら「続ける」のコスチュームにする方法があります。「休憩中」の文字も同じ合図に合わせて表示・非表示を切り替える設計にすると、画面と操作をそろえられます。
長い待ち時間がある作品は、この方法だけでは足りない
ここまでの例は、短い移動や判定を繰り返す処理を想定しています。条件の内側に入れれば、どんな処理でも途中で凍結できるわけではありません。
たとえば「もしプレイ中なら」の内側で「1秒待つ」を始めた場合、その途中で変数を変えても、待ち時間そのものが一時停止する仕組みにはなりません。条件分岐と待ち時間は別の処理です。この違いも、公式の制御ブロック実装で確認できます。
「待つ」の後に敵を出す作品では、休憩中に待ち時間が終わった場合、敵を出す直前にもプレイ中かを確認する必要があります。ただし、それだけでは出現までの残り時間を正確に保つ設計にはなりません。
最初の一時停止機能は、制限時間、長い移動演出、音のない小さな版で試すのが現実的です。音や制限時間も途中から正確に再開したい場合は、それぞれの残り時間や再開方法を別途設計してください。本記事の手順だけでは対応していません。
完成の目安は「止まる・変わらない・続けられる」
ボタンを押して猫が止まっただけでは、確認は終わりません。設計表を横に置き、次の順で実際に操作してみましょう。
- ゲームを始め、猫を出発地点から動かして、得点も変える。
- 一時停止し、猫の位置と得点を見ておく。
- 休憩中に矢印キーを押し、猫が動かないことを確かめる。
- 魚や敵が動かず、加点・減点や新しい出現も起きないことを見る。
- 「続ける」を押し、位置と得点を戻さずに遊べることを確かめる。
接触判定がある作品では、触れる直前で休憩する場合も試してください。再開後に起きる加点・減点と、休憩中には起きてほしくない変更を分けて見られます。
幼児が画面の設計に参加するなら、「休憩中は魚も止まる?」「続けるボタンはどこにあると分かる?」と、表の中から選べる部分を任せる方法があります。コードを書くことと、休憩中のルールを決めることは、分けて取り組んでも構いません。
よくある質問(FAQ)
一時停止中に得点を0にしてもよいですか?
途中から続ける機能にするなら、得点は書き換えない設計にします。0に戻す操作を用意したい場合は、「最初から遊ぶ」など別のボタンとして分けましょう。
猫に条件をつければ、敵も止まりますか?
いいえ。敵の移動処理にも共通の変数を使った条件が必要です。出現、接触判定、背景の動きなど、別のスクリプトで進んでいる処理も設計表に照らして確認します。
休憩中にも「続ける」ボタンを押せるのはなぜですか?
ゲームを進める処理だけに停止条件をつけ、ボタンのクリック処理にはその制限をかけない設計だからです。すべての処理を止めるのではなく、役割で分けています。
作品を閉じても、同じ場所から再開できますか?
この記事の一時停止は、作品を実行したまま休憩するためのものです。作品を閉じた後の途中再開は対象外です。位置や得点などを保存し、読み戻す別の仕組みが必要になります。
体験教室で一時停止機能を相談できますか?
申し込み時に「位置と得点を保ったまま休憩できるゲームを作りたい」と、希望を具体的に伝えてみてください。既存作品の持ち込み可否や、体験内で扱える範囲は事前確認が必要です。一時停止機能の完成を約束するものではありません。
CotoMiraiは、子ども一人ひとりに合わせた個別指導を行う南青山のプログラミングスクールです。指導の考え方はCotoMirai公式サイトで紹介しています。年齢・興味・理解度に応じて、作りたい仕組みをどこから試すか相談する入口として体験をご活用ください。
公式の入会案内では、年中以上は無料体験、年中未満はプログラミングトイスポットへの参加を案内しています。対象や申し込みの流れを確認のうえ、お問い合わせください。
参考にした情報
- Scratch Foundation:Variables and Lists
- Scratch Foundation:Conditional Statements
- Scratch Foundation:Making Interactive Projects with Conditional Statements
関連する記事
お子さまに合う学び方診断
正解・不正解を決める診断ではありません。今の様子から、取り組みやすい学び方の入口をご案内します。