画布上的Javascript冲突检测

画布上的Javascript冲突检测,javascript,canvas,collision-detection,game-physics,Javascript,Canvas,Collision Detection,Game Physics,我正在努力为剑和敌人编写碰撞检测。尝试使用变量swdX和swdY实现剑的坐标会导致剑变形,而不是跟随角色并保持形状 我使用的冲突代码是 //subtract hp enemy on sword swing if (swdX == enmX){ enmhplevel--; } 但是,我的swdX输出从不显示swdX正在更改 可以在这里找到链接 Pointy—我所有的代码都在JSFIDLE上。我试着用 swdX == posX +80; swdY == posY -40; 但是,这不

我正在努力为剑和敌人编写碰撞检测。尝试使用变量swdX和swdY实现剑的坐标会导致剑变形,而不是跟随角色并保持形状

我使用的冲突代码是

//subtract hp enemy on sword swing
if (swdX == enmX){
    enmhplevel--;
}
但是,我的swdX输出从不显示swdX正在更改

可以在这里找到链接

Pointy—我所有的代码都在JSFIDLE上。我试着用

swdX == posX +80;
swdY == posY -40; 

但是,这不会更新坐标。你有指针吗?

添加
swdX=posX+80;swdY=posY-40进入循环确实会很好地更新坐标。然而,在您的问题中,您有
==
,这不是赋值,而是一个等于运算符

然后,本例中的碰撞检测需要扩展,以适应敌人的半径(因此,如果该点位于敌人内部的任何位置,而不是完全位于其中心),以及剑的角度(因此,当剑在非敌人的位置旋转时,剑不会命中)

if((swdX>=enmX-30 | | swdX>enmX+30)&&(Z%360>=10&&Z%360<60)){
EnmPlevel--;
}

<>你一定要去掉硬编码的常量,考虑Y方向,当剑的点通过敌人等时,考虑一个游戏,但是这个例子在这里工作:

这是你所有的代码吗?在“swdX”初始化后,不会为其分配新值;你为什么期望它会改变?“断剑”并不是对问题的准确描述。就目前情况而言,我推荐一位铁匠,一位吸烟者。停止吸地毯烟,你可能会意识到铁匠对电脑没什么用处。我建议你使用bacon.js
if ((swdX >= enmX - 30 || swdX > enmX + 30) && (Z % 360 >= 10 && Z % 360 < 60)) {
    enmhplevel--;
}