2012-11-24 30 views
0

一個函數中的語句,以便在本場比賽爲止,我做了它可以檢查牆壁和槳碰撞,然後通過運行一個動畫來重定向球做出迴應。然而,當我們檢查沒有碰撞的時候,我一直在倒下。既不else也不else if語句的工作,和次級if語句未能工作,以及 - 無論是內部的主要功能或作爲一個單獨的事件。我在這裏已經覆蓋幾乎所有的可能性,但我希望你們中的一個(大型可靠的,你是)可以幫助解決這個問題。碰撞代碼運行多個,如果在HTML遊戲

實例(獨立的功能):

var BallStop7 = function(){ 
    setTimeout(BallStop8, 850); 
    setTimeout(Check1, 1000); 
    //setTimeout(Check1, 1000);  
    if(document.getElementById('Paddle2').style.top=="251px"); 
    { 
     document.getElementById('BallRebound6').id='BallRebound7'; 
     document.getElementById('BallRebound7').style.webkitAnimationPlayState="running"; 
    }; 

}; 

var BallStop8 = function(){ 
    /**/ 
    document.getElementById('BallRebound7').style.webkitAnimationPlayState="paused"; 
    if(document.getElementById('Paddle1').style.top=="251px"){ 
     if(confirm("Draw. Would you like to try again?")){ 
      window.location="pingpongwars.tumblr.com"; 
     }; 
     document.getElementById('BallRebound7').style.webkitAnimationPlayState="paused";  
    }; 
}; 


var Check1 = function(){ 
    if(document.getElementById('BallRebound7').style.left=="13.739665985107422px");{  
     alert("Player Two Wins"); 
     document.getElementById('BallRebound7').style.visibility="hidden"; 
    }; 
}; 

主要功能

var BallStop4 = function(){ 
    //setTimeout(BallStop5, 370); 
    if(document.getElementById('Paddle1Return').style.top=="9px"); 
    { 
     document.getElementById('BallRebound3').id='BallRebound4'; 
     document.getElementById('BallRebound4').style.webkitAnimationPlayState="running"; 
    }; 

    if(document.getElementById('BallRebound3').style.left=="30px"){ 
     alert("Player Two Wins"); 
     document.getElementById('BallRebound3').style.visibility="hidden"; 
    } 
    BallStop5(); 
}; 

的jsfiddle:http://jsfiddle.net/zbMCC/

回答

1

你在你的代碼中加入額外的分號:

if(document.getElementById('Paddle2').style.top=="251px"); 
                 ^= empty statement 
{ /* A block of code */ } 

在上面的例子中,如果truthy,則執行一個空的語句,並且碼塊將無論如何,儘管comaprison的結果來執行。只需在if之後刪除所有分號。

ifMDN

此外代碼塊不應該分號結尾,除非它們是聲明或定義的一部分。

+0

通常我會同意,但對籃板球的動畫不火,沒有他們。 –

+0

我認爲這是因爲有座標非常嚴格的條件,而使用'offsetLeft'或'offsetTop'和'> =的'或'<=''而不是和style'''==。以分號結尾,那些ifs完全沒用。 – Teemu

+0

與最後一條評論有點混淆(我有另一個遊戲是ZOMG OVERCOMPLICATED,所以我必須把它與這個混合起來)。無論如何,感謝您的建議:D –