在画布上进行Javascript碰撞检测

时间:2014-02-16 00:54:51

标签: javascript canvas collision-detection game-physics

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

我使用的碰撞代码是

//subtract hp enemy on sword swing
if (swdX == enmX){
    enmhplevel--;
}

但是,我的swdX输出从未将swdX显示为更改。

可在此处找到链接。

http://jsfiddle.net/Qt7zd/3/

尖尖 - 我的所有代码都在JSfiddle上。我尝试用

更新循环
swdX == posX +80;
swdY == posY -40; 

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

1 个答案:

答案 0 :(得分:0)

swdX = posX +80; swdY = posY -40;添加到循环中会更新坐标。但是在你的问题中,你有==,它不是赋值,它是一个等于运算符。

然后你需要扩大你在这个例子中的碰撞检测以适应敌人的半径(所以如果该点在敌人的任何地方,而不仅仅是完全在它的中心),剑会击中,并且剑(所以当剑在不在敌人身上的地方旋转时它不会击中)。

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

你肯定需要摆脱硬编码的常数,考虑y方向,考虑剑的角度是通过敌人等等,对于一个游戏,但是这个例子在这里工作:{{ 3}}