C++ Box2D仿真中的恒速对象
我想做一个像砖块破碎机一样的游戏,但砖块会对物理产生反应。 我将世界设置为0重力,砖块设置为大的线性和角度倾倒 但我有球的问题。我希望我的球始终保持相同的恒定速度。即使在与砖块、墙壁和桨叶碰撞后(是的,我有两个)。我知道这不是物理学的原理C++ Box2D仿真中的恒速对象,c++,box2d,game-physics,physics-engine,C++,Box2d,Game Physics,Physics Engine,我想做一个像砖块破碎机一样的游戏,但砖块会对物理产生反应。 我将世界设置为0重力,砖块设置为大的线性和角度倾倒 但我有球的问题。我希望我的球始终保持相同的恒定速度。即使在与砖块、墙壁和桨叶碰撞后(是的,我有两个)。我知道这不是物理学的原理 但有没有办法使球在与某些物体接触时不失去速度?让球从砖块上弹跳而不失去它的能量,但对它们施加力量(砖块)? < P>我也在寻找,但是在AS3中我找到了我想要的C++。在阅读之后,我想下面就是你们想要的,用Box2D物理以恒定的速度移动一个物体。我也会发布这个链
但有没有办法使球在与某些物体接触时不失去速度?让球从砖块上弹跳而不失去它的能量,但对它们施加力量(砖块)? < P>我也在寻找,但是在AS3中我找到了我想要的C++。在阅读之后,我想下面就是你们想要的,用Box2D物理以恒定的速度移动一个物体。我也会发布这个链接,虽然用链接回答问题不是一个好的做法,因为它们将来可能会断开
b2Vec2 vel = body->GetLinearVelocity();
float desiredVel = 0;
switch ( moveState )
{
case MS_LEFT: desiredVel = -5; break;
case MS_STOP: desiredVel = 0; break;
case MS_RIGHT: desiredVel = 5; break;
}
float velChange = desiredVel - vel.x;
float impulse = body->GetMass() * velChange; //disregard time factor
body->ApplyLinearImpulse( b2Vec2(impulse,0), body->GetWorldCenter() );