我目前正在使用javascript和processing.js進行遊戲,並且在嘗試弄清如何對角移動東西時遇到了困難。在這個遊戲中,中心有一個物體可以拍攝周圍的其他物體。現在我沒有問題只能垂直或僅水平移動子彈,但是我很難實現子彈算法的對角線運動。在javascript中水平移動對象的算法
在嘗試而言,我試圖把我的數學思維帽和用於沿直線運動的表達式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;
}
上面的代碼非常糟糕,而且速度隨線的斜率而變化。
我試着實現三角關係,但仍然徒勞。
任何幫助/建議將不勝感激!
什麼是「坡」代表? –
而不是斜坡,只與矢量工作。更容易和有用 – kennypu
對不起,斜率將暗示m在y = mx + b公式中或基本上y座標差除以x座標差 –