1

我正在创造被屏幕移动的角色。

角色是 box2d 世界中的传感器运动体。运动学因为,我想要有碰撞但没有重力的实体。我正在尝试使用精灵,但碰撞边界框有很多问题,因为物理预兆精灵动画。

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

body->SetLinearVelocity(0, 0.5) 移动身体顶部,body->SetLinearVelocity(0.5, 0.5) 移动身体 45 角,它的工作正确。

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

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

另外,如果您知道通过屏幕转换身体的更好方法,请分享您的想法

4

1 回答 1

3

好的。在 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 回答