前回は「クラウド変数」について学びました。今回はその応用として、クラウド変数を使ったレースゲームを作っていきます!
ゲームの内容はシンプル。
車を動かしてコースを走り、3周のタイムが速かったらクラウド変数に記録される仕組みです。
- コースは「外側のトラック」を描いたあと、コピーして内側をくり抜くと作りやすい
- 車は「マウスポインターの方へ向けて進む」で操作できる
- ズル防止に「中間地点を通ったか」をフラグ変数で管理する
- タイム計測はScratch標準のタイマーを使う
- クラウド変数は「記録が更新されたときだけ上書き」にすると“最速記録”っぽくなる
コース(背景)を作る
まず背景(ステージ)を作ります。周りは緑にして、目に優しい雰囲気に。
この時点で「ゲームっぽさ」が出ます。
トラックを描いて、形を“うねうね”させる
トラック部分を描いたら、変形ツールでコースを曲げます。
丸(制御点)は増やせるので、増やすほど難易度が上がります。
(難しすぎる場合は、丸を少なめにすると遊びやすいです)

コピーして内側を作る
コース作りのコツはここ。
作ったトラックをコピーして少し小さくし、内側を背景色(緑)に塗ると、一気に「道路っぽいトラック」になります。

スプライト準備:車とラインを追加
車スプライトを追加
レースなので、車スプライトを追加します。
スタート/ゴールと中間地点ラインを描く
ここを忘れがちなので注意。
- スタート&ゴール線
- 中間地点の線(チェックポイント)
後で「ズル防止」に使うので、ここは必ず入れます。
車をマウスポインターで動かす
まず初期位置に戻す
旗が押された時に、車をスタート位置へ。
X座標・Y座標を指定します。
マウスポインターへ向けて進む
- ずっと
- マウスポインターの方へ向ける
- 10歩動かす
これで「マウスで誘導するレースゲーム」になります。

コースアウト防止
コース外(草の色)に触れたら、
「10歩動かす」の逆(-10歩)をしてプラマイ0で戻す。
これで外に出にくくなります。
向き・ひっくり返り対策
- 初期の向きを -90° にする
- 車がひっくり返る場合は、コスチューム側で反転して修正

変数で“ズル防止”を作る
ここがこのゲームの肝です。
ただ周回数を数えるだけだと、スタート線を行ったり来たりしてズルできちゃいます。
フラグ変数を作る
「フラグ」という変数を作ります。
フラグは「条件を満たしたかどうか」のスイッチ役。
- スタート時:フラグ = 0
中間地点を通ったらフラグを1に
- もし(中間地点の色)に触れたら
- フラグ = 1
※色判定は必ずスポイトで取ります。色が少しでも違うと判定が通りません

週(周回数)とクラウド変数タイムを作る
追加で変数を作ります。
- 周(ローカル変数)
- タイム(クラウド変数)
スタート線+フラグ1で周回カウント
- もし(スタート/ゴール線の色)に触れている かつ(フラグ = 1)なら
- 周を +1
- フラグを 0 に戻す(次の周回のため)
これで「中間地点を通ってからじゃないと周回に数えない」仕組みになります。

3周したらタイムを記録
Scratch標準の「タイマー」を使う
- もし(周が3になったら)
- タイム = タイマー
- すべてを止める
スタート時にタイマーをリセットしておけば、正確に測れます。
最速のときだけクラウド変数を更新
このままだと、遅い記録でも上書きされちゃいます。
そこで「記録更新のときだけ上書き」にします。
条件:クラウド変数タイム > 今回のタイマー
- もし(クラウドのタイム が タイマーより大きい)なら
- タイム = タイマー(上書き)
最後の「すべてを止める」は、更新してもしなくても止めたいので、もしの外に出すのがコツ!

仕上げに表示調整&初期値
- 周をリセット(開始時に0)
- 変数の表示位置を見やすく
- クラウド変数タイムが最初0だと更新できないので、最初は大きい数を入れておくとスムーズ
まとめ
クラウド変数を使うと、Scratchでも「オンラインっぽい遊び」ができます。
今回のレースゲームは、
- コースを背景で作る
- 車をマウスで動かす
- 中間地点フラグでズル防止
- タイマーで計測
- 最速だけクラウド保存
という流れで、かなりゲームっぽい完成形になります。
「こういったゲームを作ってみたい!」という方はプログラメイクの体験会へ!
基本から応用まで、個別指導できめ細かい指導のもとプログラミングを学べます。
