我试图在屏幕上直线移动一个精灵,朝向我触摸屏幕的位置,我所做的是在每个循环中的 update() 上,它检查当前精灵的位置xy == 到目的地 x ,y 。如果它没有精灵的 x++ 和 y++...问题是 ..它不是直线移动...因为在某些情况下 x 或 y 坐标首先到达目标 x 或 y...如何我是否对其进行了更改,以便 x 和 y 一起满足目的地?
我当前的 sprite 对象的伪代码
destX = destination X
destY = destination Y
posX = current X
posY = current Y
public void update(){
if(destX > posX && destY < posY)
{
posX++;
posY--;
}
else if (destX > posX && destY > posY){
posX++;
posY++;
}
else if(destX < posX && destY > posY)
{
posX--;
posY++;
}
else if(destX < posX && destY < posY){
posX--;
posY--;
}
else if(destX < posX)
posX--;
else if(destX > posX)
posX++;
else if(destY < posY)
posY--;
else if(destY > posY)
posY++;