Scratchプログラミングでsin(サイン)cos(コサイン)を使用する方法

KIDSPRO

Scratch(スクラッチ)でゲームなどのプログラミングをしていると、実社会ではあまり見かけないsin(サイン)cos(コサイン)などを使うことがあります。
sin(サイン)cos(コサイン)だけでなく、得点計算や判定などに使用する変数、切り下げ、切り上げ、絶対値、割り算余りなど、数学の知識を実際に活用するケースが多々あります。

KIDSPRO

プログラミング学習により勉強の必要性を実感

プログラミング学習により「学校で習った事が実社会で利用されており、活用することが出来る」という事を体感できます。

実際に、変数を使った得点の付け方などを理解したとき、ほとんどの子供たちは何かを得たような嬉しそうな顔をします。

もしも「学校で習った事が社会に出てから役立つのか?」と疑問に思っている子が、プログラミングで数学を利用できることを知ったことにより「学校の勉強も必要だから、もっと勉強しよう」という考え方に変わるかもしれません。

sin(サイン)cos(コサイン)が必要なケースとは?
「〇〇へ行く」というスクリプトブロックを使って、飛行機雲(白い丸)を飛行機に移動させると飛行機の中心部分に移動します。その後に「x座標を〇ずつ変える」というブロックにより飛行機雲を尾翼のあたりに移動させます。飛行機が水平方向にしか動かないのであれば、このブロックだけで問題ありません。しかし、飛行機が傾くと右上図のように飛行機雲の位置がずれてしまいます。ここで、sin(サイン)cos(コサイン)の出番となります。

ここがポイント1

「〇〇の向き」というブロックから、飛行機の傾き(角度)を知ることが出来ます。Scratch(スクラッチ)の場合、上が0度、右が90度という決まりになっているので、90度から飛行機の傾き(角度)を引いた角度のsin(サイン)cos(コサイン)を演算ブロックで算出します。

ここがポイント2

このsin(サイン)cos(コサイン)の値と、飛行機の中心から尾翼までの距離a(今回の例では50ピクセル)を、sinθ = b ÷ a、cosθ = c ÷ aの公式に当てはめれば、飛行機の中心から尾翼までの距離bとcが分かり、飛行機雲の発生位置を指定する事が出来るようになります。

KIDSPRO

飛行機がどのような傾きになっても尾翼から飛行機雲が表示されるか、お時間のある方は実際にゲームを試してみて下さい。

Scratch 3.0(スクラッチ3.0)アクロバット飛行ゲーム(飛行機煙付き)

ゲームのやり方

オレンジ色のバーを通過し、青い色のゴールまでたどり着くとゴール。6ステージあります。

赤や紫色のイガイガにぶつからないようにして下さい。紫色のイガイガは、ミサイルで破壊出来ます。
 
「飛行機の操作方法」
・左回転:上矢印キー
・右回転:下矢印キー
・スピードアップ:右矢印キー
・スピードダウン:左矢印キー
・ガンショット:スペースキー
 
※本Scratchプロジェクトは、https://scratch.mit.edu/projects/177953545/から見れます。

Scratch3.0(スクラッチ3.0)とは?

MITメディアラボにより開発されたビジュアルプログラミング言語。子供たちが物語やゲーム、 アニメーションなどのインタラクティブな作品をプログラミングできる。また、自分の作った作品を世界中の人々と共有できるコミュニティーサイトでもある。世界中で7千万人を超えるユーザがいる。
こちらのホームページにアクセスすれば無料で利用できる。