3きゅう テーマ:ホッケー ホッケー ゲームを 作ろう 進み

はじめに📋 検定って どんな 試験?

問題文を 読んで、その通りに Scratch で ゲームを 1つ ぜんぶ 作る 試験だよ。⏱ 30分

下の 条件を ぜんぶ かなえると、ゲームが 完成するよ。最後に「アレンジ問題」も あるよ。

🏒 3きゅう の ポイント
変数・乱数・マウス操作・色に触れた判定・音・メッセージが 使えるかが 問われるよ。
条件を しっかり 読んで、1つずつ 作っていこう。

準備🛠 まず 準備を しよう

🧑‍🏫ここは 先生と いっしょに やろう。スプライト・変数・背景を そろえるよ。
① 新しい プロジェクトを 作って、名前を つける

ホッケー

② スプライトを 2つ 用意する
🏏
ラケットPaddle
「スプライトを えらぶ」で
Paddle を 探して 足す
⚽
ボールBall
「スプライトを えらぶ」で
Ball を 探して 足す
③ 背景を 用意する(「背景を えらぶ」から)

ホッケーコート(例:Blue Sky を 改造するか、ペイントで 作る)。
ゴールの 線(青色)は 上の ライン、ゲームオーバーの 線(赤色)は 下の ライン、
障害物(うすい 青色)は コートの 中に 置く 形に なるよ。

④ 変数を 2つ 作る

「変数」カテゴリの「変数を 作る」をクリックして、
速さ(「すべてのスプライト用」)と 点数(「すべてのスプライト用」)を それぞれ 作ろう。

💡 本番の 検定では これらは ファイルに 用意ずみ。今日は 先生と いっしょに そろえる ところから やってみよう。
↑ 準備が できたら チェックを 入れてね

問題🏒 ホッケー ゲームを 作ろう

✋ ここからは 自分 ひとりで チャレンジ! 条件を 読んで、ゲームを 作ろう。
🎮 どんな ゲーム?
ラケットを マウスで 動かして、ボールを 打ち返す ゲーム。
ボールが 青い ゴールラインに 届いたら 点数が 増えて 再スタート。
ボールが 赤い 下ラインに 触れたら ゲームオーバー!
🖱️ マウス or ゆびで 🏒パドルを 動かして ⚫パックを 打ち返そう! 先に 5点でクリア!

🖼(1)【ステージ(背景)】の 動作を 作ろう

① 旗が クリックされたとき(はじめの 設定)。
  • 変数「点数」が「0」になる。
  • 音量が「30」%になる。
  • メッセージ「ゲームスタート」が 送られる。
💡 使う ブロック(バラ)
@greenFlag が押されたとき
[点数 v] を (0) にする
音量を (30) %にする
[ゲームスタート v] を送る
② ①の あとの 動作。
ずっと、繰り返し、音「techno2」が 鳴り つづける(音が 鳴り 終わる前に 次の 音は 鳴らさない)。
💡 使う ブロック(バラ)
終わるまで [techno2 v] の音を鳴らす
③ メッセージ「ゴール」を 受け取ったときの 動作。a〜cの 順に 動作する。
  • a. 変数「点数」が「1」ずつ 増える。
  • b. 「2」秒 待つ。
  • c. メッセージ「ゲームスタート」が 送られる。
💡 使う ブロック(バラ)
[ゴール v] を受け取ったとき
[点数 v] を (1) ずつ変える
(2) 秒待つ
[ゲームスタート v] を送る

🏏(2)【ラケット】の 動作を 作ろう

④ 旗が クリックされたとき(はじめの 設定)。
  • Y座標が「-150」になる。
  • 回転方法が「左右のみ」になる。
  • 大きさが「60」%になる。
💡 使う ブロック(バラ)
@greenFlag が押されたとき
y座標を (-150) にする
回転方法を [左右のみ v] にする
大きさを (60) %にする
⑤ ④の あとの 動作(X座標の 変化)。
ずっと、繰り返し、X座標が マウスの X座標に なり つづける。
💡 使う ブロック(バラ)
x座標を (マウスのx座標) にする

⚽(3)【ボール】の 動作を 作ろう

⑥ 旗が クリックされたとき(はじめの 設定)。
  • 回転方法が「左右のみ」になる。
  • 大きさが「40」%になる。
  • ステージに 表示される。
💡 使う ブロック(バラ)
@greenFlag が押されたとき
回転方法を [左右のみ v] にする
大きさを (40) %にする
表示する
1
→
4
→
6
→
?
毎回 違う 数が 出る
⑦ メッセージ「ゲームスタート」を 受け取ったときの 動作。
  • 変数「速さ」が「7」になる。
  • X座標が「0」、Y座標が「-100」になる。
  • 向きが「-60」度から「60」度までの ランダムな 値に なる。
💡 使う ブロック(バラ)
[ゲームスタート v] を受け取ったとき
[速さ v] を (7) にする
x座標を (0) 、y座標を (-100) にする
((-60) から (60) までの乱数) 度に向ける
ネコ
🍎
💥
触れた! = 当たり
⑧ ⑦の あとの 動作。
ゴール(青色)に 触れるまで、繰り返し、⑨⑩⑪の 順に 動作し つづける。
ゴール(青色)に 触れたとき、メッセージ「ゴール」が 送られる。
💡 使う ブロック(バラ)
<[青色 v] 色に触れた> まで繰り返す
[ゴール v] を送る
🤔 「〜まで 繰り返す」は どの「制御」ブロックかな? ループの 中に ⑨⑩⑪を 入れるよ。
⑨ ボールの 動作。a〜cの 順に 動作する。
  • a. 変数「速さ」の 歩数だけ 動く。
  • b. ステージの 端に 着いたとき、音「Sidestick Snare」が 鳴る。
  • c. ステージの 端に 着いたとき、跳ね 返る。
💡 使う ブロック(バラ)
(速さ) 歩動かす
もし端に着いたら、跳ね返る
[Sidestick Snare v] の音を鳴らす
🤔 「端に 着いたら 音を 鳴らす」には「もし〜」で 端への 触れを 判定 しよう。まず 音を 鳴らして から 跳ね返る 順が 自然だよ。
⑩ ⑨の あとの 動作。
かべや 障害物(うすい 青色)に 触れたとき、a〜cの 順に 動作する。
  • a. 音「Sidestick Snare」が 鳴る。
  • b. 変数「速さ」の 歩数だけ もどる(反対方向に 動く)。
  • c. 向きが、「140」度から「220」度までの ランダムな 値 だけ 回る。
💡 使う ブロック(バラ)
もし <[うすい青色 v] 色に触れた> なら
end
[Sidestick Snare v] の音を鳴らす
((速さ) * (-1)) 歩動かす
@turnRight ((140) から (220) までの乱数) 度回す
⑪ ⑩の あとの 動作。
ステージ下の ライン(赤色)に 触れたとき、a・bの 順に 動作する。
  • a. メッセージ「ゲームオーバー」が 送られて 待つ。
  • b. すべての 動作が 止まる。
💡 使う ブロック(バラ)
もし <[赤色 v] 色に触れた> なら
end
[ゲームオーバー v] を送って待つ
[すべてを止める v]
⑫ メッセージ「ゲームスタート」を 受け取ったときの 動作。
ずっと、繰り返し、⑬が 動作し つづける。
⑬ ラケットに 触れたときの 動作。a〜dの 順に 動作する。
  • a. 変数「速さ」が「1」増える。
  • b. 音「Sidestick Snare」が 鳴る。
  • c. 向きが、ラケットへ 向いた あと、さらに「180」度 回る。
  • d. ラケットに 触れなく なるまで 待つ。
💡 使う ブロック(バラ)
もし <[ラケット v] に触れた> なら
end
[速さ v] を (1) ずつ変える
[Sidestick Snare v] の音を鳴らす
[ラケット v] へ向ける
@turnRight (180) 度回す
<[ラケット v] に触れた> まで待つ
🤔 ⑬の最後「ラケットに触れなくなるまで待つ」は「〜まで待つ」に「ではない」を組み合わせるよ。連続 ヒットで 速さが 増えすぎるのを 防ぐためだよ。

答え:こう 並べると できるよ。

【ステージ】①②のスクリプト

@greenFlag が押されたとき
[点数 v] を (0) にする
音量を (30) %にする
[ゲームスタート v] を送る
ずっと
  終わるまで [techno2 v] の音を鳴らす
end

【ステージ】③のスクリプト

[ゴール v] を受け取ったとき
[点数 v] を (1) ずつ変える
(2) 秒待つ
[ゲームスタート v] を送る

【ラケット】④⑤のスクリプト

@greenFlag が押されたとき
y座標を (-150) にする
回転方法を [左右のみ v] にする
大きさを (60) %にする
ずっと
  x座標を (マウスのx座標) にする
end

【ボール】⑥のスクリプト

@greenFlag が押されたとき
回転方法を [左右のみ v] にする
大きさを (40) %にする
表示する

【ボール】⑦〜⑪のスクリプト(メインループ)

[ゲームスタート v] を受け取ったとき
[速さ v] を (7) にする
x座標を (0) 、y座標を (-100) にする
((-60) から (60) までの乱数) 度に向ける
<[青色 v] 色に触れた> まで繰り返す
  (速さ) 歩動かす
  もし端に着いたら、跳ね返る
  もし <[うすい青色 v] 色に触れた> なら
    [Sidestick Snare v] の音を鳴らす
    ((速さ) * (-1)) 歩動かす
    @turnRight ((140) から (220) までの乱数) 度回す
  end
  もし <[赤色 v] 色に触れた> なら
    [ゲームオーバー v] を送って待つ
    [すべてを止める v]
  end
end
[ゴール v] を送る

【ボール】⑫⑬のスクリプト(ラケット 当たり 判定)

[ゲームスタート v] を受け取ったとき
ずっと
  もし <[ラケット v] に触れた> なら
    [速さ v] を (1) ずつ変える
    [Sidestick Snare v] の音を鳴らす
    [ラケット v] へ向ける
    @turnRight (180) 度回す
    <[ラケット v] に触れた> まで待つ
  end
end
↑ ゲームが できたら チェックを 入れてね

アレンジ問題✨ 自分で 考えて、1つ 足そう

回答に 自分の アレンジを 加えて、何を したか 説明できると 完璧!(アレンジは 問題の 指示から ずれないように)

🎯
点数が 増えると ボールが どんどん 速く なる
🔴
ボールが 2つ に なって 難しく なる
🎵
ゴール 時に 別の 効果音を 鳴らす
💥
ゲームオーバー 時に 演出(大きく なる など)を 追加
🏆
点数が「3」になったら クリア 演出を 追加
💡
自分の アイデア!
【記入例】 点数が 増えるたびに 変数「速さ」に も 少し 足すようにして、だんだん 難しく なる ようにした。
※「スプライトを 変えた」ではなく「〇〇が 〇〇に なるように した」のように、動作が わかるように 説明してね。
↑ アレンジを 足したら チェックを 入れてね

完成🎉 模擬検定 3 クリア!

変数・乱数・マウス操作・色に触れた判定・音・メッセージを 使った ホッケーゲームを 1つ ぜんぶ 作れたね。これが 3きゅう 検定の ボリュームだよ。

模擬検定 3 クリア ✓

🏆 本番 検定に 挑戦しよう!

30分で これくらいの ゲームを 作るよ。今日 練習した ことが そのまま 役に たつ!💪

↑ さいごまで すすむと おせるよ