我想要做的就是如果玩家从侧面接触到敌人那么玩家要么失去生命,要么让游戏结束。 但是如果玩家跳到敌人之上,那么它就会导致敌人消失。
当玩家在地面上时玩家触摸敌人 (玩家y轴等于敌人y轴)......
player.y == enemy.y
和
当玩家跳到敌人之上时。 (玩家y轴大于敌人y轴)......
player.y > enemy.y
到目前为止,这是我的代码......
Level.prototype.playerTouched = function(type, actor) {
if (type == "enemy" && this.status == null && player.y == enemy.y) {
this.status = "lost";
this.finishDelay = 1;
} else if (type == "enemy" && player.y > enemy.y) {
this.actors = this.actors.filter(function(other) {
return other != actor;
});
}
};
答案 0 :(得分:0)
如果你不想在这种情况下处理角度计算,那么你需要对撞机的顶部和底部位置
简单的逻辑就像那样
if(playercollider.originY > enemycollider.originY && playercollider.originX > enemycollider.leftX && playercollider.originX < enemycollider.rightX)
{
//Enemy gets hurt
}
else
{
//Player gets hurt
}