我目前正在使用 javascript 和 processing.js 开发游戏,但我在试图弄清楚如何对角移动东西时遇到了麻烦。在这个游戏中,中心有一个物体可以射击周围的其他物体。现在我只能垂直或仅水平移动子弹没有问题,但是我很难为子弹算法实现对角线运动。
在尝试方面,我尝试戴上我的数学思维上限并使用 y=mx+b 公式沿直线运动,但这就是我的代码最终的样子:
ellipse(shuriken.xPos, shuriken.yPos, shuriken.width, shuriken.height); //this is what I want to move diagonally
if(abs(shuriken.slope) > 0.65) {
if(shuriken.targetY < shuriken.OrigYPos) {
shuriken.yPos -= 4;
} else {
shuriken.yPos += 4;
}
shuriken.xPos = (shuriken.yPos - shuriken.intercept)/shuriken.slope;
} else {
if(shuriken.targetX < shuriken.OrigXPos) {
shuriken.xPos -= 4;
} else {
shuriken.xPos += 4;
}
shuriken.yPos = shuriken.slope * shuriken.xPos + shuriken.intercept;
}
上面的代码非常糟糕和hacky,因为速度随着线的斜率而变化。
我尝试实现三角关系,但仍然徒劳无功。
任何帮助/建议将不胜感激!