0

XNA 開発 Web サイトの例に従ってみましたが、キャラクターがジャンプすると、完了するまで制御できず、ジャンプの動きを止めることができません。

どうすればそれを回避できますか?これが私のジャンプコードです

private void Jump()
    {
        if (mCurrentState != FoxState.Jumping)
        {

            mCurrentState = FoxState.Jumping;
            mStartingPosition = Position;
            Direction.Y = Fox_vSpeed;
            Speed = new Vector2(Fox_Speed, Fox_Speed);
        }
    }
4

1 に答える 1

0

重力は、単にオブジェクトの加速度に影響を与える力です。アクセラレーションはオブジェクトの速度を変更するため、次のように実行できます。Speed-= Vector2.UnitY * -2; 次に、地面にあるオブジェクトとの衝突を確認できます。このような衝突が発生すると、速度のY成分をゼロにすることができます(Y成分の大きさが大きすぎる場合(絶対値)、貧弱なキツネにダメージを与える可能性があります)。

何かのようなもの:

Update(GameTime gt)
{
    if(mCurrentState == FoxState.Jumping)
    {
        Speed -= Vector2.UnitY * -2;
        Position += Speed;
        if(Position.Y > GroundLevel)
        {
            Position.Y = 0;
            mCurrentState = FoxState.Walking;
        }

    }
}

さらに情報が必要な場合は、質問を詳細に変更してください。

于 2012-10-06T02:51:46.217 に答える