我无法让它工作,看起来像补间对象不会触发'Moved'事件?
我正在屏幕上填充一个对象,并且需要检查它是否与播放器相撞(通过键盘事件上下飞行)。如果我为玩家添加“Moved”支票,它会起作用,但如果玩家静止不动该怎么办:-)
所以我需要检查补间对象何时移动,如果它击中了播放器
不会触发任何事件:
// 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');
});
答案 0 :(得分:0)
已更新:
我在plugin
使用collisions($div1, $div2)
, function interval() {
timeout = setTimeout(function () {
if (collisions($('.player1'), $('.astroid'))) {
alert('true');
}
else{
interval();
}
}, 25);
}
interval()
:
所以,
{{1}}
愿这有用......
答案 1 :(得分:0)
“Moved”是一个特殊事件,像“Multiway”这样的组件使用。
更基本的事件就是“移动”,它由2D component直接实现 - 而不是绑定到该事件。
许多人所做的只是使用“EnterFrame”检查每帧一次的碰撞。如果您需要在碰撞后直接 ,那么绑定到“移动”将提供该功能。