2014年7月5日土曜日

cocos2dx物理演算 chipmunkの謎

cocos2dxにはデフォルトで2つの物理演算システム
・Box2d
・chipmunk が使用できます。
世間一般的に人気なのはBox2d。細かい調整が色々できるもんね。



確かに物理演算の設定についてはBox2dの方が色々と融通がきくらしいのだけど、
例えば「物理演算で地面だけあれば良い。他はいらないの!」なんて
お手軽に使用したい時にはBox2dはやや記述がめんどうかな、という気がする。
そんな時はchipmunk(を使用した記述)がおすすめ。
Box2dより圧倒的に少ない記述で物理演算ができる。
そんなわけで、自分はchipmunkを使用していたのだけど、
大きな問題が一つ出てきてしまった。

物理演算のためにSpriteに剛体を紐付けるんだけど、
紐付けの際にもともとSpriteに設定してあったアンカーポイントの変更が
デフォルトのセンターに勝手に戻ってしまう。という珍現象に見舞われる。
※今回はSpriteのアンカーポイントを左下にしていたので、エミュレータで
 動きを確認したらスプライトの表示位置が大きくズレてた。

おそらく、Spriteと剛体の紐付けがセンター基準でしかできないから
勝手にセンターに戻されちゃうのかな、と思うのですが
解決方法がわからない。というか、調べた感じだとこれはもう仕様として
どうしようもない事なのかもしれない。
おそらく、同じことがBox2dでも起こるのだと思うけど、Box2dには
紐付けした剛体を中心からどれくらいズラすか、という設定ができたはずなので
Box2dだったら解決できるのかもしれない。

う〜ん、どうしたものか。
たかだがそのためだけにBox2dを頑張って実装するのもおっくうなんだよな…
Box2dもchipmunkも情報少ないし…


☆★というわけでcocos2d-xで制作しました★☆

レッド・ザ・パニッシャー ―スタイリッシュレトロアクション―
カテゴリ: アクション
Google Playで詳細を見る

今なら(永久に)無料! 今すぐチェック!!

0 件のコメント:

コメントを投稿