Javascript 调试器忽略以前的函数调用

Javascript 调试器忽略以前的函数调用,javascript,debugging,animation,canvas,javascript-debugger,Javascript,Debugging,Animation,Canvas,Javascript Debugger,我有这个弹跳/碰撞球动画,目前我正在调试碰撞检测。更准确地说,我试图防止球在碰撞过程中相交 我想在球碰撞时停止动画,我可以这样做,但是如果我还想在停止执行之前绘制球的碰撞,我需要先绘制它们 firstBall.move(); secondBall.move(); Ball.detectCollisions(balls); // execution stops here before the balls are drawn firstBall.draw(); secondBall.draw();

我有这个弹跳/碰撞球动画,目前我正在调试碰撞检测。更准确地说,我试图防止球在碰撞过程中相交

我想在球碰撞时停止动画,我可以这样做,但是如果我还想在停止执行之前绘制球的碰撞,我需要先绘制它们

firstBall.move();
secondBall.move();
Ball.detectCollisions(balls); // execution stops here before the balls are drawn
firstBall.draw();
secondBall.draw();
因此,我在碰撞函数中绘制它们。在函数结束时,我画出球,然后使用
调试器停止执行

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();
    }
};
Ball.detectCollisions=函数(){
var-debug=false;
球。forEach(函数(球){
ball.detectWallCollision();
});
对于(变量i=0;i
但这不起作用。在碰撞球被抽出之前,执行停止

我遇到并使用了他的建议,调用了一个不存在的函数(导致ReferenceError并停止了执行),而不是使用
调试器
,它就工作了。这些球是在行刑停止前抽出来的


为什么
调试器不工作?我缺少什么?

我想这会对您有所帮助,请尝试调用toDataURL检查画布中的位图。画布是双缓冲的。在当前执行结束之前,画布上的所有渲染都保持隐藏状态<代码>调试器
不会退出当前执行,错误会立即退出执行到下一个捕获或系统。只有当您没有捕获错误时,error方法才会起作用。或者您可以使用
setTimeout(()=>{debugger;},0);返回只要调用函数也返回,依此类推。我想这会对您有所帮助,并尝试调用toDataURL来检查位图insize canvas。canvas是双缓冲的。在当前执行结束之前,画布上的所有渲染都保持隐藏状态<代码>调试器
不会退出当前执行,错误会立即退出执行到下一个捕获或系统。只有当您没有捕获错误时,error方法才会起作用。或者您可以使用
setTimeout(()=>{debugger;},0);返回只要调用函数也返回,依此类推。