STGの舞台裏

おもしろい本見つけました。
この本はC++DirectXを使って説明してますが、基本的な考え方はどの言語にも適用できると思います。
STGにおいて、あらゆる弾の展開のさせ方はすべて数式で表せます。
STGやっていると時々、”この弾幕はこんな数式使っているんだろうなぁ”と思うことがあります。
例としてらじおぞんで余空武装イや東方永夜抄で妹紅の正直者の死とかはsin、cos関数使っていたりしますね。
末広がりな波の形をした弾幕です。
弾の軌道を取り出して数式で表すと
   r (x,t) = (A・x) sin( kx - ωt )
という感じかと予想されます。xは弾を発射した点からの距離、tは発射してから経った時間です。
このとき、A、k、ωは定数です。それぞれ、振幅、波数、振動数と言います。(厳密にはA・xで振幅。)
この三つの数値で弾の速度、波の密度、広がり具合などが決定されます。


高校生に物理を教えるときにゲームを作らせると数式の性質が実感できていい勉強になると思うんですけどね。
でも、そういう授業は時間的にも人材的にも難しいでしょうね。
生徒とプログラミングとの相性もあるでしょうし・・・。
プログラミングは意味が分かるとおもしろいんですけど、バグとエラーとの戦いに耐えられる精神がないときついですよ。