0

このゲームのこれまでのところ、壁とパドルの衝突をチェックし、アニメーションを実行してボールをリダイレクトすることで応答できるようにしました。しかし、衝突の欠如をチェックすることになると、私は落ち続けます。どちらのステートメントelseelse if機能せず、ステートメントが機能しない場合はセカンダリ(main関数内または個別のイベントとして)。ここではほとんどすべての可能性について説明しましたが、皆さんの1人(あなたがそうであるようにメガディペンデント)がこれを解決するのに役立つことを願っています。

衝突コードの例(個別の関数):

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/

4

1 に答える 1

1

コードに余分なセミコロンがあります:

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

上記の例では、正しければ、空のステートメントが実行され、comaprisonの結果に関係なく、とにかくコードブロックが実行されます。sの後のすべてのセミコロンを削除するだけifです。

ifMDN

また、コードブロックは、宣言または定義の一部でない限り、セミコロンで終わらせないでください。

于 2012-11-24T11:29:00.297 に答える