1

画面で動くキャラクターを作成しています。

キャラクターはbox2dワールドのセンサーキネマティックボディです。キネマティックな理由は、衝突はあるが重力がないエンティティが必要だからです。スプライトを使用しようとしていますが、物理的な前兆であるスプライトがアニメーション化されているため、衝突バウンディングボックスには多くの問題があります。

遷移ロジックには、SetLinearVelocity(b2Vec2)を使用する予定です。

body-> SetLinearVelocity(0、0.5)はボディトップを移動し、body-> SetLinearVelocity(0.5、0.5)はボディを45度移動し、正しく動作します。

しかし、私は愚かです–この方法を使用して体を別の場所に移動する方法。

言い換えれば、アナログCCMoveToを作成する必要があります。問題–SetLinearVelocityの真のb2Vec2を計算する方法。

また、画面ごとのトランジションボディのより良い方法を知っている場合は、あなたの考えを共有してください

4

1 に答える 1

3

Ok。cocos2d-iphone.orgフォーラムで私は答えを得ます。ありがとう、みんな。

CGPoint direction = ccp( targetPos.x - startPos.x, targetPos.y - startPos.y );
direction = ccpNormalize(direction);
float speed = 0.25f;
b2Vec2 vel = b2Vec2( speed*direction.x/kPointsToMeterRatio, speed*direction.y/kPointsToMeterRatio );
body->SetLinearVelocity(vel);
于 2012-08-06T09:59:17.097 に答える