Javascript 粗花物体的碰撞检测

Javascript 粗花物体的碰撞检测,javascript,craftyjs,Javascript,Craftyjs,我无法让它工作,好像粗花呢物体不会触发“移动”事件 我正在将一个物体在屏幕上来回摆动,需要检查它是否与通过键盘事件上下移动的播放器发生碰撞。如果我为玩家添加“已移动”复选框,它会起作用,但如果玩家站着不动会怎么样:- 所以我需要检查粗花呢物体何时移动,如果它击中了玩家 不会触发以下任何事件: // astroid Crafty.e('astroid, 2D, DOM, Color, Tween, Collision') .attr({ x:

我无法让它工作,好像粗花呢物体不会触发“移动”事件

我正在将一个物体在屏幕上来回摆动,需要检查它是否与通过键盘事件上下移动的播放器发生碰撞。如果我为玩家添加“已移动”复选框,它会起作用,但如果玩家站着不动会怎么样:-

所以我需要检查粗花呢物体何时移动,如果它击中了玩家

不会触发以下任何事件:

        // astroid
        Crafty.e('astroid, 2D, DOM, Color, Tween, Collision')
            .attr({ x: 600, y: 550, w: 50, h: 200 })
            .color('#8e44ad')
            .tween({ x: -50 }, 4000)
            .bind('Moved', function () {

                console.log('moved');

                if (this.hit('player1')) {
                    console.log('player hit 1');
                }
            })
            .onHit('player', function () {
                console.log('player hit 2');
            });
更新:

我在这里使用小插件$div1,$div2:

所以


这可能会有所帮助。

移动是一个特殊事件,类似多路传输的组件会使用它

更基本的事件是justmove,它由该事件的-bind直接实现


许多人所做的只是使用EnterFrame每帧检查一次碰撞。如果您需要在碰撞后直接采取行动,绑定到移动将提供这一点。

您是否能够提供您的Ashish Mishra是的,我是:-非常有帮助的Ashish!谢谢不过,这与Crafty内置的碰撞功能不兼容!我假设如果您从DOM切换到Canvas,它也会失败。根据上述条件,我给出了解决方案,并且我没有对Canvas进行测试,可能是它在Canvas上失败了,但它对HTML元素有效@starwedSure,但OP已经在使用提供此功能的;他们没有理由引入其他不兼容的依赖项:@开始了,你说得对,但无论我知道如何完成上述任务,我只是在这里分享!,真的,我对这个tween/狡猾的插件一无所知无论如何,如果你想编辑并得到更好的答案,那么欢迎:,请添加任何使用craftyJs进行碰撞检测的运行示例,因为我搜索了很多,但没有找到…它!
 function interval() {

   timeout = setTimeout(function () {

        if (collisions($('.player1'), $('.astroid'))) {
           alert('true');

        }
        else{
            interval();
        }
    }, 25);

 }

 interval()