游戏中的精灵想要走向给定的(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