遊戲中的精靈想要走向給定的(x, y)
座標對,但每個打勾只能移動walkSpeed
像素。數學檢查數字是正數,負數還是0
爲了弄清楚移動它們有多遠,我剛剛得到了一塊if
聲明。
public void walkToward(Integer x, Integer y) {
int walkSpeed = 1;
int dX = x - getxPos();
int dY = y - getyPos();
int moveX, moveY;
if (dX > 0) {
moveX = walkSpeed;
} else if (dX < 0) {
moveX = -walkSpeed;
} else {
moveX = 0;
}
if (dY > 0) {
moveY = walkSpeed;
} else if (dY < 0) {
moveY = -walkSpeed;
} else {
moveY = 0;
}
{code to move player ...}
}
這不是問題,但我覺得會有更多的數學方法來做到這一點。形式的東西
int moveX = {some operation} * walkSpeed;
凡{some operation}
關閉所有的正數爲1,所有的負數爲-1和0比0
有Math.signum,但它接受一個double並返回一個double。 – Eran
看'Math.signum' –
所以像'moveX =(int)Math.signum((float)dX)''? – Gricey