2012年4月11日水曜日

自機の方向を向く砲台

自機の方向を向く砲台のアルゴリズムを実装。

VGE(独自ゲームエンジン)には回転機能は無いので、砲台の絵を18パターン用意しました。
(18パターンということは20度単位ということになります)

その18パターンの砲台で、自機の方向を向かせるアルゴリズムがちょっと厄介でした。
アルゴリズム自体は、至極簡単なんですが。
自機と砲台の中心点間の角度を求め、単位度数で除算し、求まる番号=パターン番号です。
(その辺りの情報はぐぐれば色々出てくるので省きます)


問題は、C言語の数学ライブラリ(math)にどの程度のプラットフォーム誤差が生じ得るか・・・ということ。数学ライブラリは、インタフェース自体が標準化されていても、内部の計算式で微妙に方言があることがあります。
なので、Windows/Androidクロスプラットフォームで開発している場合、使用すべきではないです。
結局、アークタンジェント(+その算出の過程で使う平方根)を自前実装しました。

あと、サイン・コサインあたりも、標準ライブラリではなく自前で実装。(それらは単純なテーブル)

もちろん、扱う数値情報は固定小数点のみだから、物凄く高速です。
なので、沢山弾を出すことができます。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。

合理的ではないものを作りたい

ここ最近、実機版の東方VGSの開発が忙しくて、東方VGSの曲追加が滞っています。 東方VGS(実機版)のデザインを作りながら検討中。基本レトロUIベースですがシークバーはモダンに倣おうかな…とか pic.twitter.com/YOYprlDsYD — SUZUKI PLAN (...