いちばんやさしいゲームの作り方

文系の人でも、数理学がわからない人でもゲームプログラミングをマスターできるブログ

シューティングゲームなんかを作るときに弾の弾道を sin() や cos() で求めることが多いと思いますが、今読んでいる本によると、三角関数を使うよりベクトルの内積を使って垂直と水平のベクトルに分解した方が早いとありました。本当でしょうか?

ここで言われているのが三角関数は遅いという仮説です(著者にしてみれば仮説じゃないかもしれませんが)。私は標準関数の実装を見たことがないので何とも言えませんが、未だに三角関数のテーブルを作っておくのが一番早いのではないかと思っています。

実際に試してみたいのですが、たぶん実践に近いコードじゃないと正しく値がとれないと思います。というわけで、弾幕系のシューティングを作られている方は是非とも結果を教えてください。

Comments

soramame
2008/11/17 11:32:59

sin,cos,atanのテーブルを作っておくと良いと思います。
内積は平方根計算が発生するので遅いですね。これはテーブルにすることが難しいです。
それに実際に弾幕を記述するときには、ベクトルで指定するより度数法を使ったほうが直感的です。

Byerkut
2008/11/18 08:10:18

> soramame さん

コメントありがとうございました(^^
なるほど、やはりテーブル化が良さそうですか。
パソコンの性能が上がっても表現力が増えてしまえば、
ボトルネックは同じですから、解決策は「事前に計算」でしょうか。

Contributions




Trackback URL

メルマガ登録・解除
 
挫折不可能!初級ゲームプログラミング完全マニュアル
RSS track feedいちばんやさしいゲームの作り方 カウンター
ブログSEO対策:track word あわせて読みたい SEO STATUS