2011/02/13
テーマ: 開発 / iOS / 2011 / すべて
しばらくブログを更新しない間に SIO2 が v1.4 -> v2.0 になったりしているようです。 今日は Bullet の不具合?回避のネタです。
SIO2 ゲームエンジンは物理エンジンとして Bullet を使っています。 で、Vehicle を TriangleMesh 製の道路上で走らせてみたところ、Triangle の境界で急に車体がひっくり返ってしまい、ゲームにならない!ということがあって困っていました。
で、調べたところ、こんなスレがありました。 http://www.bulletphysics.org/Bullet/phpBB3/viewtopic.php?p=&f=9&t=3052
そこに載っている NotifyOnCollision 関数を定義して、
gContactAddedCallback = NotifyOnCollision;
を初期化時に実行するようにしたところ、解決。
gContactAddedCallback というのは bullet で定義されているシンボルで、以下の extern 宣言をすれば参照できます。
extern ContactAddedCallback gContactAddedCallback;