2012-08-05 73 views
1

我通过屏幕创建character who movedbox2d cocos2d。计算SetLinearVelocity的方向

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

对于转换逻辑,我打算使用SetLinearVelocity(b2Vec2)。 (0,0.5)移动身体顶部,身体 - > SetLinearVelocity(0.5,0.5)移动身体45°角,它的工作是正确的。

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

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

另外,如果你通过屏幕知道的过渡体更好的办法,请分享你的想法

回答

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); 
+0

嘿罗姆我需要一些关于跳跃精灵的帮助。你可以帮我吗?? – Leena 2012-08-30 09:08:34