bullet を使う
以前、試したときは x64 ではまともにコンパイルが通らなかった(無理やり直したけど上手く動かなかった)のだが、さっき落としてコンパイルしてみたら、問題なかったので使ってみることにした。
#include <btBulletDynamicsCommon.h> int main() { btVector3 min(-1000.0, -1000.0, -1000.0); btVector3 max(1000.0, 1000.0, 1000.0); btAxisSweep3* broad_phase = new btAxisSweep3(min, max, 2048); btSequentialImpulseConstraintSolver* solver = new btSequentialImpulseConstraintSolver; btDefaultCollisionConstructionInfo info; btDefaultCollisionConfiguration conf(info); btCollisionDispatcher* dispatcher = new btCollisionDispatcher(&conf); btDiscreteDynamicsWorld* world = new btDiscreteDynamicsWorld(dispatcher, broad_phase, solver, &conf); world->setGravity(btVector3(0.0, -1.0, 0.0)); delete dispatcher; delete broad_phase; delete solver; delete world; return 0; }
ほとんどチュートリアルからのコピペのようなものだが、↑のような感じでワールド空間の初期化ができる。
衝突判定用のオブジェクトなどの設定はもうちょい調べてみることにする(まだよくわかってない)。
・APIリファレンス
http://bulletphysics.com/Bullet/BulletFull/
・wiki
http://www.bulletphysics.org/mediawiki-1.5.8/index.php/Main_Page