在HTML游戏中的一个函数中运行多个if语句

时间:2012-11-24 10:52:58

标签: javascript css3 web 2d-games

到目前为止,在这个游戏中,我已经可以检查墙和桨碰撞,然后通过运行动画来重定向球。但是,在检查缺少碰撞时,我一直在摔倒。 elseelse if语句都不起作用,辅助if语句也不起作用 - 无论是在主函数内还是作为单独的事件。我在这里几乎涵盖了所有可能性,但我希望你们中的一个人(你们可以像你们一样可靠)来帮助解决这个问题。

碰撞代码示例(单独的函数):

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 个答案:

答案 0 :(得分:1)

您的代码中有额外的分号:

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

在上面的示例中,如果是真的,它会执行一个空语句,并且无论如何都会执行代码块,尽管comaprison的结果。只需在if之后删除所有分号。

MDN

if

此外,代码块不应以分号结尾,除非它们是声明或定义的一部分。