2014-10-18 55 views
1

所以這是我的牆壁跳躍,它工作正常,我甚至可以讓角色從牆壁上跳下來, SetHorizontalForce (10);。所以我遇到的問題是當我把SetHorizontalForce (-10);反彈到正確的牆壁上時,它使得角色不能爬上牆,而是從牆上彈回,但沒有獲得更高的高度。這是SetHorizontalForce (-10);以某種方式影響角色的y軸?還是其他的事情正在發生?當試圖從牆壁跳轉C反彈牆壁時出現問題#

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; 
} 
+0

奇怪的是,我無法在文檔中找到SetHorizo​​ntalForce。那是你自己翻的嗎?如果是的話,你能包括它嗎? – Terrance 2014-10-19 06:35:56

+0

@Terrance嘿,男人,我已經包括了我的SetHorizo​​ntalForce,如果有其他東西需要隨時問。謝謝參觀。 – kenyurick 2014-10-20 08:54:47

+0

如果你向我展示課程的其他部分,這也會有所幫助。有什麼地方可以將遊戲對象的實際速度設置爲_velocity?您是否還在固定更新或更新或其他某種方法\共程序中調用Wall Jump? – Terrance 2014-10-20 13:31:19

回答

0

所以,你想知道爲什麼它不漲更多,如果我理解正確的問題。

我沒有看到你實際上在垂直方向增加了一個力。如果你想讓它們繼續向上攀爬,那麼你需要將它們沿水平和垂直方向發送,以使它們保持牆向上跳躍,否則,它們僅使用初始跳躍力,並且一次最高點達到了,他們會開始越來越多地跌倒。

如果您需要更多解釋,請告訴我,但是,請在此處添加一些垂直跳轉,看看是否可以解決您的問題。