我正在尝试构建一种具有连续垂直玩家移动和仅水平输入的突破式游戏。我需要检测砖块是否击中侧面或顶部/底部。在没有检测到这一点的情况下,我无法阻止玩家的移动与未被破坏的砖块重叠。我尝试使用它来检测玩家实体击中的多边形的哪个边缘(在检测到碰撞时调用第一个函数,当justHit
设置为 false 时调用第二个函数):
.onHit("brick", function() {
if (data[0]['normal']['y']==0) {
reverseDirection();
}
else {
this._hspeed = 0;
}
}, function() {
this._hspeed = 3;
})
但是我遇到了两个问题:当玩家实体到达砖块的角落时,'y' datahit 值会发生变化,并且由于某种原因,如果有 2 个砖块并排,砖块组件几乎会被忽略。
- 我在jsFiddle上发布了一些精简的代码
- 您可以在此处查看带有命中数据条件的当前检测示例
- 以及在砖块边缘碰撞时没有运动限制的原始碰撞错误示例