Box2d: применить скорость в направлении - PullRequest
3 голосов
/ 01 августа 2010

Я применяю импульс к объекту в приложении iPhone box2d и теперь хочу увеличить его скорость в направлении частиц .... я имею в виду, мне нужно две вещи

1. через объект в направлении 2. увеличить скорость

помогите плз ..

Ответы [ 2 ]

2 голосов
/ 01 августа 2010
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();, а затем умножить на скорость.)

0 голосов
/ 10 декабря 2012
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);
}
...