我正在努力为剑和敌人编写碰撞检测。尝试使用变量swdX和swdY来实现剑的坐标已经导致剑变形而不是跟随角色并保持形状。
我使用的碰撞代码是
//subtract hp enemy on sword swing
if (swdX == enmX){
enmhplevel--;
}
但是,我的swdX输出从未将swdX显示为更改。
可在此处找到链接。
尖尖 - 我的所有代码都在JSfiddle上。我尝试用
更新循环swdX == posX +80;
swdY == posY -40;
但是,这不会更新坐标。你有什么指针吗?
答案 0 :(得分:0)
将swdX = posX +80; swdY = posY -40;
添加到循环中会更新坐标。但是在你的问题中,你有==
,它不是赋值,它是一个等于运算符。
然后你需要扩大你在这个例子中的碰撞检测以适应敌人的半径(所以如果该点在敌人的任何地方,而不仅仅是完全在它的中心),剑会击中,并且剑(所以当剑在不在敌人身上的地方旋转时它不会击中)。
if ((swdX >= enmX - 30 || swdX > enmX + 30) && (Z % 360 >= 10 && Z % 360 < 60)) {
enmhplevel--;
}
你肯定需要摆脱硬编码的常数,考虑y方向,考虑剑的角度是通过敌人等等,对于一个游戏,但是这个例子在这里工作:{{ 3}}