トップページ>>用語集

akjava Android情報
流しギャラリー

スタートフォト



Loading...




物理エンジン/Physics Engine


AndroidJava言語ですので、Java用の各種物理エンジンをそのまま使えます。

物理エンジンを使うと、リアルな動きが可能です。

また衝突判定もありますので、ゲームを作るのにも便利です。


ただし、Android 1.1ではAndroid専用にチューニング(Object作らないなど)されていなければ、どれもGCが頻発して一時停止しますが

(AndroidではGCが起きると場合によっては200msぐらい、すべての処理が止まります。FPS 20でも 1フレーム 50ms以内で処理しないといけないので、GCが起きると4フレームぐらい止まります。アクションゲームでは問題です)


物理エンジンは、大きく分けると2Dエンジンと3Dエンジンとがあります。

(3Dエンジンは対応していれば2Dエンジンとしても使えるみたいです)


2Dエンジン

JBox2D

http://www.jbox2d.org/

速度もそこそこ、サンプルも豊富なので一番使いやすかった。


最近、NDKを使いBox2dを直接呼び出すコードが出回ってきた。

http://groups.google.com/group/android-ndk/browse_thread/thread/10f2e02c5d6857cb


NDK版を使えば、iphone 3Gと同等の速度で動くだろう。


Phys2D

http://www.cokeandcode.com/phys2d/

動きはリアルだけど、Androidでは動きが遅い。


Simpull

http://code.google.com/p/simpull/

この中では一番シンプル、パーティクル用としては最適

作者がMLに投稿していたし一番最初にAndroidチューニングされるかも


APE

http://www.cove.org/ape/

Java版はどうも古いみたいです。

awtのクラスとか使っているのでそのままでは動きません。

精度はSimpullに近いです。

動作速度はPhys2D並に遅かったです。

ただコードはシンプルなのとライセンスから勉強用にいいかも


3Dエンジン

JBullet

http://jbullet.advel.cz/

本家のBulletに比べると、バージョン少し古め。本家の最新版では2Dエンジンにも対応予定

未検証


関連

Developerのポスト(英語)

http://groups.google.com/group/android-developers/browse_thread/thread/d06f9e739790ee1f/b14f7478412b6196

Developerのポストについて

http://blog.akaiho.com/archives/455