- ベストアンサー
DXライブラリの動作速度
DXライブラリというライブラリを使って小規模なをプログラムをしてきたのですが、ここで(まともな)シューティングゲームを作ろうと思いました。 そこで質問なのですが、60FPSで動作する2Dグラフィックの弾幕シューティングゲーム作成はDXライブラリでも十分な速度を得られるものなのでしょうか? また、他に使いやすいライブラリやAPIはないでしょうか? どなたか回答お願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
★アドバイス >DXライブラリでも十分な速度を得られるものなのでしょうか? ↑ 弾の管理(敵機も含む)を工夫して最適化すれば十分な速度が出せると思います。 いままで小規模なプログラム(シューティング)を作成してきたようですが、 弾の管理などはどうでしたか? ・もし、配列を使って空き領域をちまちまと検索してから弾の発生を 管理していたのでれば弾幕系のシューティングでは遅くなります。 データ管理のアルゴリズムをここでお勉強された方が良いでしょう。 一般的には巨大なデータメモリ(メモリ・プール)を1つ用意して双方向リストという 構造で独自に弾(敵機、アイテムなど)の構造体を確保、解放します。 C言語標準のmalloc、freeやC++言語のnew、deleteではメモリの確保/解放に時間が かかってしまうかもしれません。なお、C++の場合はnew、deleteの演算子を オーバーロードできますので独自に管理したメモリ確保、解放をnew、deleteで 記述できるように出来ます。(工夫次第) >他に使いやすいライブラリやAPIはないでしょうか? ↑ DXライブラリで十分だと思います。 ご不満であれば自分で使いやすいクラス・ライブラリをお勉強をかねて作成して下さい。 特に(まともな)シューティングゲームを作ろうと思っているのであれば シューティングゲームに特化したゲーム・システムを開発して使いまわせば さまざまなシューティングゲームが短期間で作成可能になります。 時間があるのであれば挑戦してみることをお勧めします。 最後に: ・次のリンクをどうぞ。 簡単な解説ですが参考になると思います。 http://codezine.jp/a/article/aid/297.aspx→『本格的なシューティングゲームを実現するタスクシステム』 ※解説&サンプルソースはC++で書かれています。 ※DXライブラリもC++で作成されています。