【发布时间】:2017-02-04 13:56:14
【问题描述】:
我正在使用 cocos2dx 制作台球游戏。
首先,我使用此参数设置 edgeBox PhysicsMaterial(1.0f, 1.0f, 0.8f)
然后这两个球PhysicsMaterial(1.0f, 1.0f, 0.5f)
在更新功能上,我想在没有重力的情况下(比如制造地面摩擦)通过添加
physicsBody->setLinearDamping(0.3);
在更新功能上,我设置了最小速度,如果每个球的速度低于15,则将速度重置为0,0
auto MV = 15;
auto v1 = player1->getPhysicsBody()->getVelocity();
auto v2 = player2->getPhysicsBody()->getVelocity();
if (v1.x > MV || v1.x < -MV ||
v1.y > MV || v1.y < -MV) {
} else if(v1 != Vec2(0,0)) {
player1->getPhysicsBody()->setVelocity(Vec2(0,0));
CCLOG("sx 1 : %f %f",v1.x,v1.y);
}
if (v2.x > MV || v2.x < -MV ||
v2.y > MV || v2.y < -MV) {
} else if(v2 != Vec2(0,0)) {
player2->getPhysicsBody()->setVelocity(Vec2(0,0));
CCLOG("sx 2 : %f %f",v2.x,v2.y);
}
除了球靠墙或彼此相邻时,一切正常。我看到这些物体上有蓝色的小胶水,这就是接触的时间。
在这种情况下,我无法将速度设置为 0,0。 我认为有某种力量不断改变速度。你可以看到下图看到蓝色的胶水,并像永远一样保持设置速度 = 0.0。
【问题讨论】:
标签: cocos2d-x game-physics velocity