シューティングゲームなんかを作るときに弾の弾道を sin() や cos() で求めることが多いと思いますが、今読んでいる本によると、三角関数を使うよりベクトルの内積を使って垂直と水平のベクトルに分解した方が早いとありました。本当でしょうか?
ここで言われているのが三角関数は遅いという仮説です(著者にしてみれば仮説じゃないかもしれませんが)。私は標準関数の実装を見たことがないので何とも言えませんが、未だに三角関数のテーブルを作っておくのが一番早いのではないかと思っています。
実際に試してみたいのですが、たぶん実践に近いコードじゃないと正しく値がとれないと思います。というわけで、弾幕系のシューティングを作られている方は是非とも結果を教えてください。
Comments
sin,cos,atanのテーブルを作っておくと良いと思います。
内積は平方根計算が発生するので遅いですね。これはテーブルにすることが難しいです。
それに実際に弾幕を記述するときには、ベクトルで指定するより度数法を使ったほうが直感的です。
> soramame さん
コメントありがとうございました(^^
なるほど、やはりテーブル化が良さそうですか。
パソコンの性能が上がっても表現力が増えてしまえば、
ボトルネックは同じですから、解決策は「事前に計算」でしょうか。
Contributions