Box2d - 降低b2body的灵敏度

时间:2011-05-04 14:19:57

标签: objective-c cocos2d-iphone box2d objective-c++

当受到鼠标关节的影响时,是否可以降低b2Body物体的灵敏度?
基本上我有一个跟随我的b2body的相机,过度旋转导致相机变得疯狂 我曾尝试使用旋转限制代码,这不是很理想,因为它有时会带来奇怪的物理行为 我的旋转限制代码是这样的(伪代码):

for (b2body *b in _bodies){
    if (b == myhero){
         float ang = myhero->GetAngle();
         if (ang > 35) ang = 35;
         if (ang < -35) ang = -35;
         myhero->setTransform(myhero->GetPosition().x,myhero->GetPosition().y,ang);
    }
 }

有没有人有更好的建议?感谢。

1 个答案:

答案 0 :(得分:2)

物理学的鼠标关节可能正是你想要的。但是你不希望你的相机加入那个。

而不是限制你的英雄的行动自由,你应该限制你的相机跟随你的英雄。

在相机中放一些宽松的东西。限制移动/旋转的最大加速度。所以不要将你的身体位置1:1与摄像机位置联系起来。

我不确定您正在制作什么样的游戏,但请考虑您希望用户如何体验它,为相机写下一些限制并实施它们。