处理 4 的平滑运动问题

Smooth Movement Issues with Processing 4

我正在编写一个程序,让小 'birds' 移动并跟随您的光标。实例不旋转或任何花哨的东西,我遇到了一个非常不寻常的问题。

如果实例处于相同的 X 层或 Y 层,它就会振荡。我以前遇到过边界和移动的这个问题,所以我尝试采用类似的方法。

void move() {
    
    if (xPos == mouseX) {
      xPos += 0;
    } else if (xPos < mouseX) {
      xPos += speed;
    } else {
      xPos -= speed;
    }
    
    if (yPos == mouseY) {
      yPos += 0;
    } else if (yPos < mouseY) {
      yPos += speed;
    } else {
      yPos -= speed;
    }

    xPos = (xPos > mouseX) ? xPos - speed : xPos + speed;
    yPos = (yPos > mouseY) ? yPos - speed : yPos + speed;
  }

两个版本同时运行移动才流畅。我试过重新排列“>”和“<”符号,但无济于事。

我可以删除此代码的任何部分以阻止它重复自身吗?

谢谢:)

小鸟靠近轴时需要移动得更少。试试这个:

if (abs(xPos - mouseX) < speed) {
  xPos = mouseX
} else if (xPos < mouseX) {
  xPos += speed;
} else {
  xPos -= speed;
}