1

これは私のウォール ジャンプです。正常に動作し、 を使用して左側の壁からウォール ジャンプをしたときに、キャラクターを壁からわずかに跳ね返すことさえできますSetHorizontalForce (10);。したがって、私が直面している問題はSetHorizontalForce (-10);、右の壁から跳ね返ると、キャラクターが壁を登ることができなくなり、代わりに壁から跳ね返りますが、それ以上の高さは得られないことです。これはSetHorizontalForce (-10);何らかの形でキャラクターの y 軸に影響を与えていますか? それとも、まったく別のことが起こっているのでしょうか?

public void WallJump()
{   
    if (State.HasCollisions) {
        AddForce (new Vector2 (0, Parameters.JumpMagnitude));
        _jumpIn = Parameters.JumpFrequency;
    }
    if (State.IsColidingLeft) {
        SetHorizontalForce (10);
        _dashIn = Para.DashFrequency;
    }
    else if (State.IsColidingRight){
        SetHorizontalForce (-10);
        _dashIn = Para.DashFrequency;
    }
}

編集: SetHorizo​​ntalForce を含めるように求められたので、ここにあります:

private Vector2 _velocity;

    public void SetHorizontalForce(float x)
    {
    _velocity.x = x;
    }

EDIT2: これが私の _velocity の処理方法です。

public void AddForce(Vector2 force)
{
    _velocity = force;
}
public void SetForce(Vector2 force)
{
    _velocity += force;
}
public void SetHorizontalForce(float x)
{
    _velocity.x = x;
}
public void SetVerticalForce(float y)
{
    _velocity.y = y;
}
4

1 に答える 1

0

ですから、私が問題を正しく理解しているのに、なぜそれ以上上がらないのか疑問に思っているでしょう。

あなたが実際に垂直方向に力を加えているのを見たことはありません。上向きに登り続けたい場合は、壁を上方向にジャンプさせ続けるために、水平方向と垂直方向に送信する必要があります。そうしないと、最初のジャンプ力のみを使用し、一度頂点に達すると、どんどん落ちていきます。

さらに説明が必要な場合はお知らせください。ただし、そこに垂直ジャンプも追加して、問題が解決するかどうかを確認してください。

于 2014-11-05T22:42:24.907 に答える