C++ 在Cocos2D中无限循环一个精灵

C++ 在Cocos2D中无限循环一个精灵,c++,cocos2d-iphone,cocos2d-x,cocos2d-x-3.0,C++,Cocos2d Iphone,Cocos2d X,Cocos2d X 3.0,我正在制作一个垂直滚动平板游戏,我想创建一个从左到右(或从右到左)移动的精灵,当它们离开屏幕时,它们会出现在另一侧 我有一个基本上可以工作的实现,唯一的问题是一层楼的精灵在每个循环中都越来越近 我真的不擅长描述事物,所以 我使用以下代码计算节点的新位置: pos.x = fmodf(size.width + pos.x + this->currentDir * this->speed * delta, this->len + size.width) - size.width;

我正在制作一个垂直滚动平板游戏,我想创建一个从左到右(或从右到左)移动的精灵,当它们离开屏幕时,它们会出现在另一侧

我有一个基本上可以工作的实现,唯一的问题是一层楼的精灵在每个循环中都越来越近

我真的不擅长描述事物,所以

我使用以下代码计算节点的新位置:

pos.x = fmodf(size.width + pos.x + this->currentDir * this->speed * delta, this->len + size.width) - size.width;
len
是精灵重新定位到
0
后的宽度(实际上是
-size.width
,它是精灵的宽度),
currentDir
1
-1
,而
delta
是更新()方法的时间


每个精灵都定位在它自己的update()中,但我已经尝试了场景的update()方法中的所有操作,但结果都是一样的。

如果增量变量随时间增加,那么我相信pos.x也会以相同的比例增加,这就是为什么离地板的距离会改变


您是否尝试过在每次地板离开屏幕时重置增量值?

增量是自上次在Second中调用update()以来经过的时间。我明白这一点。我相信,随着时间的推移,其中一个变量的增长速度超过了它应该增长的速度,我认为如果不重置它,它可能是增量。我建议您打印随时间变化的值,以查看问题所在。