2013-04-21 128 views
1

我試圖把一個簡單的遊戲在JavaScript中,我不能讓跳躍的工作:在javascript中跳轉動畫?

function jump() 
{ 
    isJumping=true; 

    var jumpint= setInterval(function() { 
    ypos=ypos-5; 
    }, 10); 
    if(ypos==150) 
    { 
     isJumping == false; 
     clearInterval(jumpint); 
     jumpint = 0; 
     alert("it works"); 
     return; 

    } 

} 

每當我調用此函數它提供的動畫,並在正確的方向上的角色移動,但它並沒有停止。一旦ypos等於150,它會繼續移動,並不執行if語句,我不知道爲什麼。顯然,我會在那裏有一些等式,但是我希望在繼續之前讓這個跳躍執行。

+0

如果你正在開發一個HTML5和''的遊戲,你可能想使用'requestAnimationFrame'而不是'setInterval'。 [看看](https://developer.mozilla.org/en-US/docs/DOM/window.requestAnimationFrame)。 – MaxArt 2013-04-21 18:03:58

回答

2

把if語句setInterval,否則只會被執行一次。

var jumpint = setInterval(function() { 
    ypos=ypos-5; 
    if(ypos==150) 
    { 
     isJumping == false; 
     clearInterval(jumpint); 
     alert("it works"); 
    } 
}, 10); 

此外,您可能需要將條件更改爲ypos <= 150。假設ypos爲157.如果持續減少5,則它將變爲157 - > 152 - > 147並跳過該狀態。要修復它,只需將if語句的條件更改爲ypos <= 150即可。

+0

感覺像一個白癡,謝謝一堆! – 2013-04-21 17:59:23

+0

@PeterJewicz沒問題! :) – Doorknob 2013-04-21 18:01:03

+0

@PeterJewicz如果您的問題被正確解答,請不要忘記接受它(點擊複選標記)。 – bwroga 2013-04-21 18:22:14