ゲームプログラミングのはなし22
【ゲームプログラミングのはなし22】
となると、ゲームでキャラクターを動かすということは、移動量であるVX, VYに放り込む数値をいかに生成するか、ということが勝負になります。
デカルト座標の魔術師となることができれば怖いものはありません。
昔は、CPUパワーが足りなかったので、リアルタイムに計算をさせることなく、移動量をひたすらデータとして貯めておき、順次それを呼び出してX座標、Y座標に加算していく方法が普通でした。
-1, -1, 0, 0, 1, 1, ...
というように。方眼紙とにらみっこしながら、もしくは頭に座標を描きながら。
しかし、イマドキの高性能CPUは昔のスパコン以上?の計算能力を持っているので、リアルタイムにsin, cosなどの三角関数や複雑な方程式を使ってガンガン計算させても、2Dゲームぐらいならほとんどスピードに影響はありません。
ですので、ここでは数学の知識があると大変重宝します。円運動はX座標にcos、Y座標にsinを使うと実現できます。ギャラガのように突然方向転換するようなグニャグニャ動くのは、5点ぐらいの座標を指定し、その間を補完するスプライン関数を使うと実現できます。
中学、高校で学ぶ数学は何のために学ぶのか?何の役に立つのか?とブツクサ文句たれる学生に言ってあげてください。
「ゲームつくるために絶対必要!!」
(続く)
(動画)スプライン関数でギャ⚪︎ガもどき