Javascript 如何检查一个fabricjs对象是否与另一个发生碰撞?

Javascript 如何检查一个fabricjs对象是否与另一个发生碰撞?,javascript,html5-canvas,fabricjs,Javascript,Html5 Canvas,Fabricjs,我的requestAnimationFrame循环中有以下代码: //move obstacles game.obstacles.forEach(function(obstacle, index) { obstacle.shape.left-=OBSTACLE_SPEED //if outside to the left of canvas remove element, //splice: https://st

我的requestAnimationFrame循环中有以下代码:

    //move obstacles
    game.obstacles.forEach(function(obstacle, index) {
        obstacle.shape.left-=OBSTACLE_SPEED
        
        //if outside to the left of canvas remove element, 
        //splice: https://stackoverflow.com/questions/9882284/
        //index in foreach: https://stackoverflow.com/questions/10179815/
        if (obstacle.shape.left < 0-OBSTACLE_SIZE*2) {
            game.obstacles.splice(index, 1) //removes invisible obstacle
            console.log("obstacles.size: " + game.obstacles.length)
            addObstacle() //adds new obstacle
        }

        //check if player intersects with obstacle
        //console.log("intersects? " + obstacle.shape.intersectsWithObject(player.avatar))
        if (obstacle.shape.intersectsWithObject(player.avatar)) {
            console.log("YO ITS OVER!")
            alert("asdas")
        }

    })
我基本上是在尝试实现这个游戏的基本功能:

我发现你的代码中唯一可能引起麻烦的是:
游戏。障碍。拼接(索引,1)
。如果完全忽略左边界检查(当然只是为了测试),会发生什么?你能发布一个代码的工作示例来清楚地显示问题吗?我在使用圆圈的同时也能解决障碍,目前还可以。在画布上移动对象后调用
setCoords()
也有助于提高准确性。Fabricjs不是为游戏设计的,还有许多其他库是专门为html画布游戏设计的,试试这些吧。
    if (player.moving == true ) { //move player
        //console.log("moving")
        player.avatar.top+=player.dy
    }
    //console.log(player.avatar.top)
    canvas.renderAll()