2017-07-05 11 views
0

私はJavascriptでプログラミングするのが初めてで、ビデオの助けを借りて簡単なピンポンゲームを構築しています。私はビデオのすべての指示に従ってきましたが、それは動作していないようです。 ballXは、キャンバスの幅を過ぎると中央にリセットされるはずですが、Xは右のパドルに当たった場合には反転することになっています。正確な指示にもかかわらずコードが機能しない

if (ballX < 0) { 
    if (ballY > paddle1Y && 
    ballY < paddle1Y + paddleHeight) { 
    ballXSpeed = -ballXSpeed; 
    } else { 
    ballReset(); 
    } 
    if (ballX > canvas.width) { 
    if (ballY > paddle2Y && 
     ballY < paddleHeight + paddle2Y) { 
     ballXSpeed = -ballXSpeed; 
    } else { 
     ballReset(); 
    } 
    } 
}; //ends movement(); 
+1

現在、何が起こっていますか? [mcve]を入力してください。 –

+0

ballXが0より小さくなければ、ballX> canvas.width ...が間違った '}'を持っているかどうかを決して確認しません - '}'の後に '}'が必要でない場合 –

+0

私はフォーマット済みですインデントを修正するコード(*他に何も変更しない)を読めるように修正しましたが、それ以上のコンテキストなしで何をしようとしているのかはまだ明確ではありません。 – nnnnnn

答えて

0

私はあなたがあなたの場合は構造を修正すべきだと思う:

// if ballX is less than 0, expected to use is paddle1 
if (ballX < 0) { 
    if (ballY > paddle1Y && 
    ballY < paddle1Y + paddleHeight) { 
    ballXSpeed = -ballXSpeed; 
    } else { 
    ballReset(); 
    } 
} 
// else if ballX is in the other side of the table, expected to use is paddle2 
else if (ballX > canvas.width) { 
    if (ballY > paddle2Y && 
    ballY < paddleHeight + paddle2Y) { 
    ballXSpeed = -ballXSpeed; 
    } else { 
    ballReset(); 
    } 
} 

あなた};が間違っていました。

+0

if文が正しいです、 '}'の位置が間違っていました:p –

+0

右。特に言及するのを忘れてしまった。 ^^ – suguspnk

0

}を移動 - それはballXが0よりも小さい場合、それは非常に単純にコードのその部分は無用作り、キャンバスの幅より大きくなることはありません

if (ballX < 0) { 
    if (ballY > paddle1Y && 
    ballY < paddle1Y + paddleHeight) { 
    ballXSpeed = -ballXSpeed; 
    } else { 
    ballReset(); 
    } 
} // added 
if (ballX > canvas.width) { // this probably should be an else if but it really doesn't matter 
    if (ballY > paddle2Y && 
    ballY < paddleHeight + paddle2Y) { 
    ballXSpeed = -ballXSpeed; 
    } else { 
    ballReset(); 
    } 
    // a } removed from here 
} //ends movement(); 
0

に役立つかどうかを確認します。論理は単に意味をなさない。

0

括弧の問題があると思われます。

if (ballX < 0) { 
    if ((ballY > paddle1Y) && 
    ((ballY < paddle1Y) + paddleHeight))) { 
    ballXSpeed = -ballXSpeed; 
    } else { 
    ballReset(); 
    } 
} // added 
if (ballX > canvas.width) { // this probably should be an else if but it really doesn't matter 
    if ((ballY > paddle2Y) && 
    ((ballY < paddleHeight) + paddle2Y))) { 
    ballXSpeed = -ballXSpeed; 
    } else { 
    ballReset(); 
    } 
    // a } removed from here 
} //ends movement(); 
関連する問題