🏫 先生向けガイド
この授業の面白さは、壁は本物の反射のとおりなのに、パドルはわざと違うところにあります。 本物どおりに作るとゲームが単調になるので、作った人が「端に当てると横に飛ぶ」ルールを足しています。 「本当はこうなるはず」と「ゲームではこうなる」を分けて考えるのが、理科とプログラミングの両方につながる見方です。
https://hinata-ya.tech/games/games/breakout/(開いて確認する)。モードは「ノーマル」で構いません| 時間 | 活動 | 先生の動き・ポイント |
|---|---|---|
| 5分 | 導入「ボールを壁に向かって投げると、どう跳ね返る?」黒板に壁とボールの矢印を描いて予想させる | 斜めに当てた場合を描く。「まっすぐ返ってくる」「同じ角度で反対側へ」など予想を並べ、今日はゲームで確かめると伝える |
| 15分 | プレイ ブロック崩しをプレイ。途中から課題「パドルのどこに当てると、どっちに飛ぶ?」を与える | 最初の5分は自由に。慣れたら「左端・真ん中・右端」に当てる実験を指示。記録シートに矢印で描かせる。ゲームオーバーになっても「もう一回」ですぐ再開できる |
| 15分 | 実験・作図 ①壁:入ってきた角度と出ていく角度を図に描く ②パドル:3か所の結果を矢印でまとめる | 壁は「同じ角度」になることを確認(分度器で測ってもよい)。パドルは「真ん中=真上」「端=横寄り」になることをクラスで共有。「壁と違う!」に気づかせるのがヤマ場 |
| 10分 | まとめ「壁の跳ね返りは、鏡に光が当たるときと同じ」(理科とのつながり)。「パドルはなぜ違う?」 | 鏡の図を横に並べて、入射角=反射角を確認。パドルについては「作った人がそう決めた。本物どおりだとつまらないから」と種明かしし、余裕があれば下のコードを映す |
ブロック崩しのソースコードには、「パドルのどこに当たったか(左端=0、右端=1)」を角度に変える計算があります。 次はボールを発射するときの部分で、跳ね返りも同じ考え方です。
// パドル上の位置 hitPos(0〜1)から、飛ばす角度を決める(ブロック崩しの game.js より) var hitPos = Math.max(0, Math.min(1, b.offset / currentPaddleW)); angle = (150 - hitPos * 120) * Math.PI / 180; // 左端150° … 真ん中90° … 右端30° b.dx = ballSpeed * Math.cos(angle); // 横向きの速さ b.dy = -Math.abs(ballSpeed * Math.sin(angle)); // 縦向きの速さ(上向きはマイナス)
小学生には「真ん中なら90°(真上)、端に行くほど30°や150°(横寄り)と、人間が決めた式で角度を作っている」と伝えれば十分です。
中学生・高校生なら、150 や 120 を変えると何が起きるかを情報Ⅰの問題ページの問4で扱っています。
| よくある様子 | 手立て |
|---|---|
| ボールが速くて、どこに当たったか見えない | 「当てた瞬間ではなく、そのあとボールがどっちに行ったか」だけ見ればよい。3回やって多かった向きを書く |
| すぐゲームオーバーになって実験にならない | 実験中は点数を気にしないと宣言する。落としてもすぐ再開できる |
| 壁の「同じ角度」が図に描けない | 方眼紙で「3マス進んで1マス上がった」なら「3マス進んで1マス下がる」と、マス目で描かせる。分度器は使わなくてよい |
| 「パドルも壁と同じでしょ」と決めつける | 右端に当てたときの向きを、真ん中に当てたときと並べて描かせる。違いが目で見えれば覆る |
| 効果音が一斉に鳴って騒がしい | 開始前にヘッドホンか音量オフ。ゲーム内の🔊ボタンで消せる |
ふり返り(1〜2行):「壁とパドルで、跳ね返り方はどう違った?」「それはなぜ?」
| 観点 | こう言えたら分かっている |
|---|---|
| 知識・技能 | 壁では入ってきた角度と出ていく角度が同じになることを図に描ける |
| 思考・判断・表現 | パドルの3か所で結果が違うことを記録し、「当てる場所で向きが決まる」とまとめられる。「作った人がそう決めた」と理由を説明できる |
| 主体的に学習に取り組む態度 | 3か所すべてを試そうとしている。うまく当たらなくても繰り返している |
スコアやクリアしたステージ数は評価に使いません。理由はガイド トップの「評価(見取り)の観点」を参照。
| 用途 | URL |
|---|---|
| ① 遊ぶ | https://hinata-ya.tech/games/games/breakout/ |
| ②③ Scratchで中を見る・作りかえる | https://hinata-ya.tech/games/games/breakout/scratch/ |
| ④⑤ コードを読む・書きかえる | https://hinata-ya.tech/games/games/breakout/source/ |