0

それで、体が動かないなど、私を混乱させる何かが起こっています。SetLinearVelocity()次のように、ボディにメンバー関数を使用しました。

dude.body.SetLinearVelocity(new b2Vec2(0.1, 0.1));

次に、関数console.log()を呼び出す前に権利を配置します。Step

console.log(dude.body.GetPosition().x);
console.log(dude.body.m_linearVelocity);
world.Step(1/60, 10, 10);
console.log(dude.body.GetPosition().x);

これは私のゲーム アニメーション ループ内にあるため、console.logが何度も呼び出されます。値が0.1 で、値が 0.1 であると表示m_linearVelocityされます。b2Vec2xy

したがって、関数呼び出しの直前Stepでは、 の x 値と y 値はm_linearVelocity0 より大きくなりますがdude.body.GetPosition().x、上記のスニペットの最初から最後まで変化はありません。

問題の追跡をどこから始めればよいかわかりません。これは私には意味がないからです。なぜこれが起こるのか誰にも分かりますか?

編集:追加する必要があります。重力がある場合は機能しましたが、無重力では、線速度がゼロより大きい場合でも移動しません。

4

1 に答える 1

0

私自身の質問に対する答えを見つけました。ただし、WakeUp()例の関数の代わりに、次を使用する必要がありますSetAwake(true)

http://www.box2d.org/forum/viewtopic.php?f=8&t=3181

于 2013-06-16T10:44:03.597 に答える