我在 box2d iPhone 应用程序中的一个对象中应用脉冲,现在想在特定方向上提高它的速度....我的意思是我需要两件事
1.沿一个方向穿过物体 2.增加速度
请帮助..
我在 box2d iPhone 应用程序中的一个对象中应用脉冲,现在想在特定方向上提高它的速度....我的意思是我需要两件事
1.沿一个方向穿过物体 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);
通过修改xAcceleration
和yAcceleration
,可以使物体以不同的速度向不同的方向运动。(如果您计算角度,您可能需要使用force.Normalize();
然后乘以速度。)
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);
}