3

box2d iPhoneアプリのオブジェクトにインパルスを適用し、特定の方向に速度を上げたいと思っています....つまり、2つのことが必要です

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);

xAccelerationとを変更するyAccelerationことで、さまざまな方向にさまざまな速度でオブジェクトを動かすことができます。(角度を計算する場合は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 に答える