您的代码没有多大意义,但这是我的尝试:
picx = 0;
newpicx = 1024;
if(speed<20) speed+=.05f;
picx -=speed;
newpicx -= speed;
if ((picx + 1024 - speed-4) <0) {
picx = 1024;
}
if ((newpicx + 1024 - speed-4) <0) {
newpicx = 1024;
}
您正在制作两个“图片”,它们的 x 位置从 1st=0、2nd=1024 开始。然后,您使用稳定在 20 的递增速度将它们向左移动(负 x),当它们在 x 轴上低于 0 的 1024 个单位时,它们传送到正 1024。
然后,当您开始增加它们的 x 而不是减少时,您就会遇到问题。那是因为当它们是 +1024 个正 x 单位时,您没有处理。
picx +=speed*delta; //use delta for FrameIndependant Movement
newpicx += speed*delta;
if (picx > 1024){
picx = -1024;
}
if (newpicx > 1024){
newpicx = -1024;
}