2017-04-11 51 views
-1

我正在爲手機制作2D遊戲 我需要有一個小而大的跳躍爲人物 我有很多麻煩讓團結,以區分差異在一個水龍頭(用於小跳躍)和按下(用於大跳躍)之間。水龍頭和按住不同的跳躍(C#)

+0

只是計算通過自來水的輸入時間。 –

+0

我試試這個,用一個倒數計時器,但它經常結束了應用這兩種情況下 –

+1

你可以在一段代碼添加到崗位,使社區能更好地幫助你?否則,我們不會知道您嘗試過/正在嘗試 –

回答

0

你可以檢查角色是否是空中的,速度不是0並且是向上的。如果是這種情況,那就意味着角色已經(最有可能)跳了起來。然後,如果這是真的,在很短的時間後(在這裏使用一個計時器),我們還檢查玩家是否仍在按屏幕。如果他們仍然按下屏幕,則爲角色添加更多力量,直到達到較大跳躍的高度。

僞代碼:

if (player presses screen) 
{ 
    // Add small impulse to make the character jump to the "minimum jump height" 

    // Start timer  

    if (character's velocity is upwards and they are not grounded) 
    { 
     if (timer is greater than your chosen time) 
     { 
      // Add another impulse so character jumps to the "maximum jump height" 
      // Stop and reset timer 
     } 
    } 
} 

這是一個基本的計劃,它並不完美,但它應該讓你開始;有很多方法可以做到這一點 - 如果您想要一個真正可變的跳躍高度,您可能需要考慮使用Force而不是Impulse。請參閱Unity文檔AddForce

注意:FixedUpdate()而不是Update()內應用基於物理的動作是更好的做法。這使得它更加複雜,因爲您通常需要檢查Update()中的播放器輸入,但這是避免基於物理的操作出現問題的必要步驟。