调试器会忽略之前的函数调用(Debugger ignores previous function c

2019-09-27 05:16发布

我有这样的弹跳/碰撞球的动画和我目前正在调试的碰撞检测。 更精确地说,我试图阻止球从碰撞过程中相交。

我想停止动画的那一刻球发生碰撞,我能做到这一点,但如果我也想停止执行之前绘制球的碰撞,我需要首先吸引他们。

firstBall.move();
secondBall.move();
Ball.detectCollisions(balls); // execution stops here before the balls are drawn
firstBall.draw();
secondBall.draw();

所以,我画他们的碰撞函数内。 在函数结束时,我画了球,然后停止与执行debugger

Ball.detectCollisions = function () {
    var debug = false;
    balls.forEach(function(ball) {
        ball.detectWallCollision();
    });
    for (var i = 0; i < balls.length; i++) {
        for (var j = i + 1; j < balls.length; j++) {
            if (balls[i].collidingWith(balls[j])) {
                // balls[i].resoveCollision(balls[j]);
                balls[i].xray = true;
                balls[j].xray = true;
                debug = true;
            }
        }
    }
    if (debug) {
        balls.forEach(function(ball) {
            ball.draw();
        });
        debugger;
        // haltGodDammit();
    }
};

但是,这是行不通的。 绘制碰撞球之前停止执行。

我碰到与巴特的答案 ,并用他的建议,称不存在的函数(造成的ReferenceError和停止执行),而不是使用debugger和它的工作。 球执行的停止之前绘制。

为什么没有debugger的工作? 我在想什么?

文章来源: Debugger ignores previous function call