我在box2d iPhone应用程序中对一个物体施加了冲量,现在想要增加它在特定方向上的速度...我的意思是我需要两件事情:
1.将物体朝一个方向移动 2.增加速度
请帮忙。
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);
}