Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当玩家.y大于敌人.y时如何消灭敌人_Javascript_Css_Html_Game Physics - Fatal编程技术网

Javascript 当玩家.y大于敌人.y时如何消灭敌人

Javascript 当玩家.y大于敌人.y时如何消灭敌人,javascript,css,html,game-physics,Javascript,Css,Html,Game Physics,我想做的是,如果玩家从侧面碰到敌人,那么玩家要么失去生命,要么导致游戏结束。 但是如果玩家跳到敌人的头顶上,就会导致敌人消失 当玩家在地面上触碰敌人时 (玩家的y轴等于敌人的y轴) player.y==敌人.y 及 当玩家跳到敌人身上时。 (玩家的y轴大于敌人的y轴) 玩家.y>敌人.y 这是我到目前为止的代码 Level.prototype.playerTouched=函数(类型、参与者){ if(type==“敌军”&&this.status==null&&player.y==敌军.y){

我想做的是,如果玩家从侧面碰到敌人,那么玩家要么失去生命,要么导致游戏结束。 但是如果玩家跳到敌人的头顶上,就会导致敌人消失

当玩家在地面上触碰敌人时 (玩家的y轴等于敌人的y轴)

player.y==敌人.y

当玩家跳到敌人身上时。 (玩家的y轴大于敌人的y轴)

玩家.y>敌人.y

这是我到目前为止的代码

Level.prototype.playerTouched=函数(类型、参与者){
if(type==“敌军”&&this.status==null&&player.y==敌军.y){
this.status=“丢失”;
this.finishDelay=1;
}else if(类型==“敌人”&&player.y>敌人.y){
this.actors=this.actors.filter(函数(其他)){
还其他的!=演员;
});
}

};如果您不想在这种情况下处理角度计算,则需要碰撞器的顶部和底部位置

简单的逻辑就是这样

if(playercollider.originY > enemycollider.originY && playercollider.originX > enemycollider.leftX && playercollider.originX < enemycollider.rightX)
{
    //Enemy gets hurt
}
else
{
    //Player gets hurt
}
if(playercollider.originY>enemycollider.originY&&playercollider.originX>enemycollider.leftX&&playercollider.originX
有点不清楚你在问什么。这段代码中哪些有效,哪些无效?那么问题出在哪里?你在问什么?我相信这是用javascript player.y编写的正确方法。y敌人。y玩家y大于敌人y。我遇到的问题是,当我将它们添加到代码中时,它就不起作用了。但是,没有它们,代码就可以正常工作。所以我相信我遇到的问题是我没有以正确的方式添加它们。当我尝试添加代码时,会发生的是游戏冻结。因此,它正在做一些事情。然而,我还没有得到它去做我想做的。也就是说,如果玩家从侧面碰到敌人,那么玩家要么失去生命,要么导致游戏结束。但是如果玩家跳到敌人的头顶上,它就会导致敌人消失。这很奇怪,如果你仍然想解决这个问题,请与我们分享更多的代码行。。。你可以在这里查看我的游戏,只需单击查看源代码即可查看代码。在Level.prototype.playerTouched函数中,无法读取玩家和触摸演员的位置值?为什么不呢?console.log(“播放器Y:+this.pos.Y”);你得到的是//玩家Y:未定义