我是按屏幕创建的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。
此外,如果您通过屏幕了解过渡体的更好方法,请分享您的想法
答案 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);