Learn iPhone, iOS, Objective-c, Swift, cocos2dx, Unity and ….?

iOSやAndroid開発でのエラー解決法や便利tipsのメモ

RSS Feed

Box2Dで物体をドラッグする方法

0 Comments
Posted by Kuro on 2013/01/05

スポンサードリンク

Touch&Drag操作で物体を動かしたいのだが、Box2Dでは物体を指定の位置に動かすことが難しい。
どういうことかというと、Box2dの世界ではすべての動作が物理演算にもとづいていなくてはならない。
座標指定で強制的に動かせなくはないが、その場合はその物体が物理演算の世界に対応できなくなってしまう。

このアプリでやっているようなことをやりたい。

「モチモチもち盛り」も物理演算を使っているように見えるが、ドラッグでの移動はどうやっているんだろうか?

ちなみにcocos2dだとこんな感じでやればok。

Box2Dでどうやるか。
ググってみると、同じ質問が結構ある。

裏ワザとして、物体を一度削除して、指定位置でもう一度生成するという方法もあった。
しかし、これだと瞬間移動になってしまう。

どうやらmouseJointというものを使う方法が無難なようだ。

以下のサイトに詳しい解説が載っている。
http://www.raywenderlich.com/475/how-to-create-a-simple-breakout-game-with-box2d-and-cocos2d-tutorial-part-12

この方法はタッチ位置と物体をジョイントさせて動かすというもので、タッチ位置に向かって物体が猛スピードで近づくことによりドラッグ操作を実現している。
確かにこれで物体をドラッグできるようにはなったのだが、これだと引っ張られたようになりスムーズではない。
言葉では説明しづらいが、やってみれば分かると思う。

仕方なくいろいろ試してみたが、今のところ以下の方法がベスト。
ドラッグ操作に対してやや遅れる感はあるがこちらの方が自然な動作になる。

スポンサードリンク


Filed under Box2D, Programming
You can leave a comment, or trackback from your own site.

0 Comments

You can be the first to comment!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

スポンサードリンク

Popular Posts