スクラッチコーチキャンプ スクラッチで使える無料素材集
  • 素材
  • 修行
  • はじめての方へ
  • スクラッチゲームの作り方

    #022 腹ペコネコのリンゴキャッチゲームの作り方|矢印キー・タイマー・メッセージの基本アクション

    #022 腹ペコネコのリンゴキャッチゲームの作り方|矢印キー・タイマー・メッセージの基本アクション
    この記事は スクラッチコーチで掲載されているオリジナル記事 のバックアップです。
    スターター作品
    なし
    今回の完成サンプル
    なし
    [soy-series name="はじめてのスクラッチ"]

    さぁ、スクラッチでナニ作る!?

    動画で見てみよう

    [talk]チャンネル登録して応援よろしく!チャンネル登録する[/talk]

    チュートリアルの元になった作品

    [prj-embed prj="1318183462" mini="1" title="プレイしておこう" prj-title="sb3_20260508174811" prj-author="ok-scratch"]今回の[prj-link prj="1318183462" title="sb3_20260508174811" author="ok-scratch"]スクラッチを作る参考作品[/prj-link]です。リンゴが1秒ごとにランダムな場所にワープするだけで、追いかける楽しさが生まれてるのがヤバい。「どこかの場所へ行く」たった1ブロックが、プレイヤーをステージ中ダッシュさせ続ける原動力になるってキレッキレの設計だ。制限時間と組み合わせることで、止まってる時間がないドタバタ感が生まれてるのもいいよね。この仕組みをどうやって組み立てるか、見ていこう。参考資料:スクラッチプログラミング事例大全集[/prj-embed]

    今回の目標

    矢印キーで腹ペコネコを動かして、ランダムに移動するリンゴを制限時間内にできるだけたくさん食べてスコアを稼ごう。

    スターター作品をリミックスしよう

    このチュートリアルにはスターター作品があります。使わなくても大丈夫だけど、最低限の素材などが用意されてるので便利です。
    スターター作品をダウンロード

    #1ネコの初期設定

    [talk class="m-l-n"]スクラッチの基本はもうバッチリだよね。今回は矢印キーでネコを動かして、制限時間内にリンゴをたくさん食べるアクションゲームに挑戦しよう![/talk]

    準備

    スプライト「ハングリーキャット」を開く

    ハングリーキャットハングリーキャット
    スプライトについて
    プレイヤーが矢印キーで操作するネコのキャラクター。リンゴに触れて食べ、スコアを稼ぐ。タイマーが0になるとゲームオーバーになる。
    どんな役割か
    プレイヤーが操作するネコを作るよ!矢印キーで動かして、リンゴを食べたらスコアが上がる仕組みを実装しよう。

    変数「★スコア」を追加

    プレイヤーがリンゴを食べるたびに加算されるスコア

    変数「★スコア」を追加

    変数「★タイマー」を追加

    ゲーム残り時間(秒)。0になるとゲームオーバー

    変数「★タイマー」を追加

    実装

    step-0

    イベントgreenflag が押されたときでゲームが始まったら、「★スコア」と「★タイマー」の変数を表示して、「★スコア」を0にリセット。大きさを70%にして、ネコをx座標-150、y座標0に配置するよ。

    制御ずっとループの中で、まず「★タイマー」の値を毎フレーム計算しているんだ。調べるタイマーは旗クリックからの経過秒数を自動で数えてくれるから、制限時間の2からその値を引いて切り下げれば、残り秒数がわかる仕組みだね。[talk]スクラッチの調べるタイマーって、旗をクリックした瞬間から自動でカウントが始まるんだよ。だから「残り時間」を作りたいときは、制限時間から引き算するだけでカウントダウンができちゃう。タイマー用の変数を自分で減らしていく方法もあるけど、引き算パターンのほうがシンプルで、ループの回数に依存しないのが強みだね。[/talk]

    確認プレビューしておこうという口コミを寄せてくれた方 確認プレビューしておこう
    旗を押すと★スコアと★タイマーが表示されて、ハングリーキャットが左側にスタンバイした。サイズは70%で、タイマーのカウントダウンもスタートしてるね。

    #2タイマーチェック

    準備

    メッセージ「ゲームオーバー」を追加

    タイマーが0になったときに送信されるメッセージ。受信したスプライトはゲーム終了処理を行う

    メッセージ「ゲームオーバー」を追加

    実装

    step-1

    「★タイマー」が0になったかどうかチェックするよ。0になっていたらイベント( ) を送って待つで「ゲームオーバー」メッセージを送って、全スプライトの終了処理が終わるまで待つんだ。

    確認プレビューしておこうという口コミを寄せてくれた方 確認プレビューしておこう
    右キーと左キーでハングリーキャットが左右に動くようになった。歩行アニメーションもついてるし、タイマーが0になったらゲームオーバーの判定も入ってるよ。

    #3移動

    step-2

    続いて左右の移動処理。右向き矢印キーが押されたらx座標を10増やして右に、左向き矢印なら-10で左に動かすよ。どちらも移動のたびに見た目次のコスチュームにするで次のコスチュームに切り替えるから、ネコが歩いてるように見えるわけだね。

    コスチュームが2枚あれば交互に切り替えるだけでアニメーションになる。パラパラ漫画と同じ原理だよ。

    上向き矢印キーでy座標を10増やして上に、下向き矢印なら-10で下に移動するよ。左右と同じく、動くたびにコスチュームを切り替えてアニメーションさせるんだ。

    確認プレビューしておこうという口コミを寄せてくれた方 確認プレビューしておこう
    ネコが上下左右にちょこちょこ歩き回れるようになった。これでりんごをゲットできる。まぁまだりんごがないから、もうちょっと頑張らないとね。

    #4接触判定

    [talk class="m-l-n"]ネコの左右移動が完成したから、続けて接触判定を追加しよう。[/talk]

    準備

    メッセージ「食べた」を追加

    ネコがリンゴに触れたときに送信されるメッセージ。スコア加算と効果音再生のトリガー

    メッセージ「食べた」を追加

    実装

    step-3

    そして調べる( ) に触れたでリンゴに触れたかチェックして、触れていたらイベント( ) を送るで「食べた」メッセージを送信する。このメッセージでネコとリンゴの両方が同時に反応できるのがポイントだね。

    確認プレビューしておこうという口コミを寄せてくれた方 確認プレビューしておこう
    上キーと下キーでもハングリーキャットが動くようになって、これで4方向の移動が完成した。リンゴに触れたら「食べた」メッセージを送る仕組み。

    #5リンゴの初期設定

    [talk class="m-l-n"]ネコの基本動作ができたから、次はターゲットのリンゴを準備していこう。[/talk]

    準備

    スプライト「リンゴ」を開く

    リンゴリンゴ
    スプライトについて
    ランダムな位置に出現するリンゴのキャラクター。ネコに食べられると別の場所に移動する。
    どんな役割か
    リンゴを作るよ!ランダムな場所にワープして、ネコに食べられたらまた別の場所に現れる動きを実装しよう。

    実装

    step-4

    イベントgreenflag が押されたときでリンゴを表示して、大きさを70%に設定するよ。初期位置はネコと反対側のx座標150・y座標0なんだ。

    ネコとリンゴを離して置くことで、スタート直後から「追いかけるゲーム」だとわかる構成だよ。

    確認プレビューしておこうという口コミを寄せてくれた方 確認プレビューしておこう
    リンゴのスプライトが登場。旗を押すとサイズ70%で表示されて、ステージの右側に配置される。ハングリーキャットが追いかけるターゲット。

    #6リンゴのワープ移動

    [talk class="m-l-n"]リンゴをランダムな場所にワープさせ続ける仕組みを作るよ。同じ場所にずっといたらカンタンすぎるもんね。[/talk] step-5

    制御ずっとループの中で動き( ) へ行くの「どこかの場所」を使うと、リンゴがステージ上のランダムな位置に瞬間移動するんだ。1秒待ってからまたワープする繰り返しで、この1秒の間隔がプレイヤーにとっての勝負どころになっているよ。

    確認プレビューしておこうという口コミを寄せてくれた方 確認プレビューしておこう
    リンゴがずっとループの中で1秒ごとにランダムな場所へワープし続けるようになった。「どこかの場所へ行く」ブロックでパッと移動する感じ。

    #7食べられたらワープ

    [talk class="m-l-n"]ネコの接触判定ができたから、次はリンゴ側で「食べた」を受け取ったときの処理を作っていくよ。[/talk] step-6

    イベント( ) を受け取ったときで「食べた」メッセージを受け取ったら、動き( ) へ行くの「どこかの場所」で別の位置にワープするんだ。食べられた瞬間に新しい場所へ飛ぶから、プレイヤーはすぐ次のリンゴを追いかけることになるわけだね。

    確認プレビューしておこうという口コミを寄せてくれた方 確認プレビューしておこう
    リンゴが「食べた」メッセージを受け取ったら即座にランダムな場所へワープするようになった。食べられたら別の場所に逃げる動きだね。

    #8スコアと効果音

    [talk class="m-l-n"]リンゴ側の反応ができたから、ネコ側でも「食べた」メッセージの処理を作ろう。[/talk]

    準備

    スプライト「ハングリーキャット」を開く

    ハングリーキャット
    ハングリーキャット

    実装

    step-7

    イベント( ) を受け取ったときで「食べた」を受け取ったら、「★スコア」を1増やして効果音を鳴らし、「モグモグ!」と1秒言うよ。スコア・音・セリフの3つが揃うことで、リンゴを食べた手ごたえがグッと出るんだ。

    プレイヤーへのフィードバックは多いほど気持ちいい。見た目の変化・音・セリフの3点セットは、ゲーム作りの鉄板テクニック。[talk]このゲームでは「食べた」という1つのメッセージを、ネコとリンゴの両方が受け取って別々の反応をしているよね。ネコはスコア加算と効果音、リンゴはワープ移動。メッセージはテレビの放送みたいなもので、送る側は1回だけ発信して、受け取る側がそれぞれ自分の役割を果たすんだ。複数のスプライトが連携するゲームには欠かせない仕組みだよ。[/talk]

    #9ゲームオーバー処理

    [talk class="m-l-n"]タイマーが0になったときの終了処理を作るよ。ネコ側では効果音を鳴らしてからゲームを止める役割だ。[/talk] step-8

    イベント( ) を受け取ったときで「ゲームオーバー」を受け取ったら、効果音を最後まで再生してから制御 ですべてを止めるんだ。音が鳴り終わるまで待ってから止めることで、ゲームの締めくくりがしっかり伝わるよ。

    確認プレビューしておこうという口コミを寄せてくれた方 確認プレビューしておこう
    リンゴを食べると★スコアが1増えてBiteの音が鳴って、「モグモグ」って1秒言うようになった。あとゲームオーバー時にはWin音が鳴って全スプライトが止まるよ。

    #10リンゴの退場

    [talk class="m-l-n"]ネコのゲームオーバー処理ができたから、最後にリンゴ側も仕上げるよ。[/talk]

    準備

    スプライト「リンゴ」を開く

    リンゴ
    リンゴ

    実装

    step-9

    イベント( ) を受け取ったときで「ゲームオーバー」を受け取ったら、見た目隠すでリンゴを非表示にするんだ。ゲームが終わったのにリンゴがワープし続けてたらおかしいもんね。これでゲーム完成、次回もまた新しい作品を作っていこう!

    確認プレビューしておこうという口コミを寄せてくれた方 確認プレビューしておこう
    ゲームオーバーのメッセージを受け取ったらリンゴが非表示になる。時間切れでリンゴが消える演出、これで完成。

    まとめ

    メッセージを使って複数のスプライトが連携する仕組み、うまく作れた?「食べた」という1つのメッセージをネコもリンゴも受け取って、それぞれ別の反応をするのがポイントだよ。タイマーを使った時間制限も、引き算だけで作れるシンプルさがなかなかいいよね。次のゲームも一緒に作っていこう!

    ブクマよろしくお願いします!という口コミを寄せてくれた方 ブクマよろしくお願いします!
    どんどん追記・更新していくので、ブックマークやシェアよろしくお願いします!