私は小惑星のようなゲームを作っています。私のゲームでは、キーが押されたときにプレイヤーの船に deltaX の変更を適用させ (船をどちらの方向にも推進させます)、キーを離すと、船が完全に停止する前に deltaX がゆっくりと減少します。 . これにより、一種の「ドリフト」効果が作成されます
このコードがデルタを負の場合にのみ減少させ、正の場合には減少させない理由を教えてください。(左に移動している場合は手を離すと船は左にドリフトしますが、右に移動するとこれは機能しません)
deltaX に影響を与えるコードのスニペットを次に示します。
if (GamePanel.Left && Math.abs(deltaX) <= speed)
{
this.deltaX = (this.deltaX-1)*1.6;
}
else if (GamePanel.Right && Math.abs(deltaX) <= speed)
{
this.deltaX = (this.deltaX+1)*1.6;
}
else if (!GamePanel.Right && !GamePanel.Left && Math.abs(deltaX) >= 0)
{
this.deltaX *= .39;
}