2017-09-05 17 views
-1

私はゲームの仕事をしています、ポンと、私はパドルから跳ね返るようにボールを取得しようとしていますが、それは動作していません。代わりに代わりに "resetGame"のことをしています。 ifステートメントをトリガーする必要があることを行っているにもかかわらず、それはifステートメントを実行していないとわかりました。elseステートメントにまっすぐに進んでいます。Pongのゲームでバグを見つけるには?

ちなみに、私はJavaScriptを使用していて、それは私がGoogleだけでそれを開封しておりますコンソールでエラーがあると言っていません。これはラインである

<html> 
    <h3>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PONG- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -</h3> 

    <canvas id="gameCanvas" width="800" height="600"></canvas> 

    <script> 
     var canvas; 
     var canvasContext; 
     var ballX = 50; 
     var ballY = 50; 
     var ballSpeedX = 11; 
     var ballSpeedY = 5; 

     var playerPaddleY = 240; 
     const paddleHeight = 120; 

     function calculateMousePos(evt) { 
      var rect = canvas.getBoundingClientRect(); 
      var root = document.documentElement; 
      var mouseX = evt.clientX - rect.left - root.scrollLeft; 
      var mouseY = evt.clientY - rect.top - root.scrollTop; 
      return { 
       x:mouseX, 
       y:mouseY 
      }; 
     } 

     window.onload = function() { 
      canvas = document.getElementById('gameCanvas'); 
      canvasContext = canvas.getContext('2d'); 

      var framesPerSecond = 30; 

      setInterval(function() { 
       moveEverything(); 
       drawEverything(); 
      }, 1000/framesPerSecond); 

      canvas.addEventListener('mousemove', 
       function(evt) { 
        var mousePos = calculateMousePos(evt); 
        playerPaddleY = mousePos.y- (paddleHeight/2); 
       }); 
     } 

     function ballReset() { 
      ballX = canvas.width/2; 
      ballY = canvas.height/2; 
      ballSpeedX = -ballSpeedX; 
     } 

     function moveEverything() { 
      ballX = ballX + ballSpeedX; 
      ballY = ballY + ballSpeedY; 

      if (ballX > canvas.width) { 
       ballReset(); 
      } 

      if(ballX < 0) { 
       console.log("hello"); 
       if(ballY > playerPaddleY && ballY < paddleHeight) { 
        console.log("hellooo"); 
        ballSpeedX = -ballSpeedX; 
       } 
       else { 
        console.log("helloooooo"); 
        ballReset(); 
       } 
      } 

      if(ballY > canvas.height) { 
       ballSpeedY = -ballSpeedY; 
      } 

      if(ballY < 0) { 
       ballSpeedY = -ballSpeedY; 
      } 
     } 

     function drawEverything() { 
      canvasContext.fillStyle = 'black'; 
      canvasContext.fillRect(0,0,canvas.width,canvas.height); 
      canvasContext.fillStyle = 'white'; 
      canvasContext.fillRect(0, playerPaddleY, 13, paddleHeight); // player 

      canvasContext.fillRect(785, 240, 13, 120); //computer player 

      canvasContext.beginPath(); 
      canvasContext.arc(ballX, ballY, 10, 0,Math.PI*2, true); //ball 
      canvasContext.fill(); 
     } 
    </script> 
</html> 
+0

商標つづり;文法;ノイズ減少。 – Cerbrus

答えて

1

は、ここでは、コードです。あなたは()バリー、playerPaddleYとpaddleHeightそれはあなたが現在のピクセルで高さBALLY位置を比較していることが明らかになるだろうがCONSOLE.LOG場合

if((ballY > playerPaddleY) && (ballY < (playerPaddleY + paddleHeight))) { 

に変更したい

if(ballY > playerPaddleY && ballY < paddleHeight) { 

パドル、明らかに失敗する。

+0

ok、ありがとう、あなたは私の問題を解決した –

関連する問題