3

我在 box2d iPhone 应用程序中的一个对象中应用脉冲,现在想在特定方向上提高它的速度....我的意思是我需要两件事

1.沿一个方向穿过物体 2.增加速度

请帮助..

4

2 回答 2

2
b2Vec2 force = b2Vec2(xAcceleration, yAcceleration);
force *= dt;  // Use this if your game engine uses an explicit time step
b2Vec2 p = myObjectBody->GetWorldPoint(b2Vec2(0.0f, 0.0f));
body->ApplyForce(force, p);

通过修改xAccelerationyAcceleration,可以使物体以不同的速度向不同的方向运动。(如果您计算角度,您可能需要使用force.Normalize();然后乘以速度。)

于 2010-08-01T19:47:47.183 回答
0
b2Vec2 vector = self.speed * b2Vec2(cos(angle), sin(angle));
self.yourbodyBody->SetLinearVelocity(vector);
[self schedule:@selector(increaseSpeed) interval:0.1];

- (void)increaseSpeed
{
    self.speed += 0.01;
    float angle = self.yourbodyBody->GetAngle();
    b2Vec2 vector = self.speed * b2Vec2(cos(angle), sin(angle));
    self.yourbodyBody->SetLinearVelocity(vector);
}
于 2012-12-10T18:14:04.837 回答