こんにちは、cocos2d の CCMoveTo アクションのように体を正確な位置に移動する方法です。SetLinearVelocity でこれを作成する方法を理解します
b2Vec2 force = (t * endPosition) - body->GetLinearVelocity();
[self runAction: [CCSequence actions: [CCCallBlock actionWithBlock:^{
body->SetLinearVelocity( force );
}],
[CCDelayTime actionWithDuration: (1.0f / t)],
[CCCallBlock actionWithBlock:^{
body->SetLinearVelocity( b2Vec2_zero );
}],nil]];
フォーラムでこのコードを見つけましたが、役に立ちません..
b2Vec2 currentPosition = body->GetPosition();
b2Vec2 desiredPosition = ...;
b2Vec2 necessaryMovement = desiredPosition - currentPosition;
float necessaryDistance = necessaryMovement.Length();
necessaryMovement.Normalize();
float forceMagnitude = b2Min(maxAllowableForce, necessaryDistance);
b2Vec2 force = forceMagnitude * necessaryMovement;
body->ApplyForce( force, body->GetWorldCenter() );
同じ問題で体を目標地点に止められないので、助けてください。