box2d cocos2d。计算SetLinearVelocity的方向

时间:2012-08-05 11:36:23

标签: cocos2d-iphone box2d-iphone direction

我是按屏幕创建的character who moved

字符是box2d世界中的传感器运动体。 运动因为,我想要碰撞的实体,但没有引力。我尝试使用sprite,但是碰撞边界框有很多问题,因为物理上的sprite是动画的。

对于转换逻辑,我计划使用SetLinearVelocity(b2Vec2)。

body-> SetLinearVelocity(0,0.5)移动body top,body-> SetLinearVelocity(0.5,0.5)将body移动45度角,它的工作正确。

但我是愚蠢的 - 如何使用这种方法移动身体到不同的点。

换句话说,我需要创建模拟CCMoveTo。问题 - 如何为SetLinearVelocity计算真正的b2Vec2。

此外,如果您通过屏幕了解过渡体的更好方法,请分享您的想法

1 个答案:

答案 0 :(得分:3)

O'k。在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);