处理 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;
}
我正在编写一个程序,让小 '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;
}