0

我让我的纹理移动,就像减少它的 X 轴一样。但问题是当我以越来越快的速度移动它时,它没有正确添加。我的示例代码如下。

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;     
}
4

1 回答 1

0

您的代码没有多大意义,但这是我的尝试:

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;     
}
于 2014-01-10T07:08:34.553 回答