2

setTransformを使用して角度を設定したb2Bodyがあります。しかし、特定の角度で b2Body を動かしたいのです。私の CCSprite は、ccMoveBy を使用してその角度で移動しています。しかし、私の b2Body はその CCSprite で動きません。そこで、setTransform を使用することを考えました。CCSprite を動かしているのと同じ値で角度を設定します。しかし、それでも b2Body は別の場所に移動します。

私はそれを次のように使用しました

b->setTransform(b->getPosition(),30*DEG_TO_RED);
b->setLinearVelocity(b2Vec2(120,180));

どんな助けでも大歓迎です。

ありがとうございました、。

4

2 に答える 2

0
#define CC_DEGREES_TO_RADIANS(__ANGLE__) ((__ANGLE__) * 0.01745329252f) // PI / 180

これは体を 30 度回転させるためのものであり、その位置は変わりません。

    b->setTransform(b->getPosition(),CC_DEGREES_TO_RADIANS(30));

    b->setLinearVelocity(b2Vec2(120,180));

また

    b->setTransform(b2Vec(100/PTMRATIO,200/PTMRATIO),CC_DEGREES_TO_RADIANS(30));

ここで 100 X 200Y POSITION に変更しました

import "CGPointExtension.h"

        b->setTransform(ccpAdd(b2Vec(100/PTMRATIO,200/PTMRATIO), b2Vec(50/PTMRATIO,50/PTMRATIO)),CC_DEGREES_TO_RADIANS(30));
于 2011-07-06T12:42:56.130 に答える