私は体を動かそうとしています:
if (ks.IsKeyDown(Keys.Up)) {
rocket.ApplyImpulse(new Box2DX.Common.Vec2(0, 30f), rocket.GetPosition());
}
妙にキーを離した時だけ体が動く。どうしてこれなの?説明書を見ましたがわかりません。
条件を削除して をapplyImpulse()
呼び出すとStep()
、ロケットは継続的にスラスターのアニメーションを表示しますが、実際には動きません。(ずっと上キーを押していたかのように。)
これを機能させるために本当に必要なのは、最初の引数が何をするかをよりよく理解することですapplyImpulse()
。
new Box2DX.Common.Vec2(0, 30f)
ベクトル内の 2 つの値の意味は何ですか?
更新これははるかにうまく機能します:
rocket.ApplyImpulse(new Box2DX.Common.Vec2(0, -1), rocket.GetPosition());
力ベクトルの 2 番目の値が負の場合、オブジェクトが画面上で上昇するように見えます。以前は、適用された衝動はそれを床に叩きつけるだけでした。キーを離したときに、インパルスが十分に強かった場合、キーが跳ね返ることがありました。