Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在我的乒乓球游戏中找到bug?_Javascript - Fatal编程技术网

Javascript 如何在我的乒乓球游戏中找到bug?

Javascript 如何在我的乒乓球游戏中找到bug?,javascript,Javascript,我正在做一个游戏,Pong,我试图让球从球拍上弹起,但它不起作用。相反,它正在做“重新设置游戏”的事情。我在控制台中输入了日志,查看它什么时候不工作,并发现它没有执行if语句,它直接进入else语句,即使我正在做应该触发if语句的事情 顺便说一句,我使用的是JavaScript,它没有说控制台中有任何错误,我只是用谷歌打开它 以下是代码: <html> <h3>- - - - - - - - - - - - - - - - - - - - - - - - - -

我正在做一个游戏,Pong,我试图让球从球拍上弹起,但它不起作用。相反,它正在做“重新设置游戏”的事情。我在
控制台中输入了
日志,查看它什么时候不工作,并发现它没有执行
if
语句,它直接进入
else
语句,即使我正在做应该触发
if
语句的事情

顺便说一句,我使用的是JavaScript,它没有说控制台中有任何错误,我只是用谷歌打开它

以下是代码:

<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>

-————————————————————————————————————————————————————————————-
var帆布;
var canvasContext;
var ballX=50;
var-ballY=50;
var-ballSpeedX=11;
var=5;
var playerPaddleY=240;
恒桨高度=120;
函数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;
返回{
x:鼠标,
y:老鼠
};
}
window.onload=函数(){
canvas=document.getElementById('gameCanvas');
canvasContext=canvas.getContext('2d');
var framesPerSecond=30;
setInterval(函数(){
移动一切();
抽屉物品();
},1000/帧每秒);
canvas.addEventListener('mousemove',
功能(evt){
var mousePos=calculateMousePos(evt);
PlayerPadley=mousePos.y-(桨叶高度/2);
});
}
函数ballReset(){
ballX=画布宽度/2;
ballY=canvas.height/2;
ballSpeedX=-ballSpeedX;
}
函数moveEverything(){
ballX=ballX+ballSpeedX;
巴利=巴利+巴利;
如果(球>画布宽度){
ballReset();
}
if(ballX<0){
console.log(“你好”);
如果(球>球员帕德利&球<桨叶高度){
控制台日志(“helloo”);
ballSpeedX=-ballSpeedX;
}
否则{
console.log(“hellooooo”);
ballReset();
}
}
如果(球>画布高度){
鲍尔斯皮蒂=-鲍尔斯皮蒂;
}
if(ballY<0){
鲍尔斯皮蒂=-鲍尔斯皮蒂;
}
}
函数drawerything(){
canvasContext.fillStyle='black';
canvasContext.fillRect(0,0,canvas.width,canvas.height);
canvasContext.fillStyle='white';
canvasContext.fillRect(0,PlayerPadley,13,桨高);//玩家
canvasContext.fillRect(785240,13120);//计算机播放器
canvasContext.beginPath();
canvasContext.arc(ballX,ballY,10,0,Math.PI*2,true);//ball
canvasContext.fill();
}
这是一行

if(ballY > playerPaddleY && ballY < paddleHeight) {
if(ballY>playerPaddleY&&ballY
你想换成什么

if((ballY > playerPaddleY) && (ballY < (playerPaddleY + paddleHeight))) {
if((巴利>玩家帕德利)和&(巴利<(玩家帕德利+桨叶高度))){

如果您console.log()ballY、PlayerPadley和PaileHeight,很明显您当前正在将ballY位置与挡板的像素高度进行比较,这显然是失败的。

商标大写;拼写;语法;降噪。