在Cocos2D中无限循环一个sprite

时间:2016-04-18 16:11:12

标签: c++ cocos2d-iphone cocos2d-x cocos2d-x-3.0

我正在制作垂直滚动平台游戏,我想创建从左到右(或从右到左)移动的精灵,当他们从屏幕上移出时,他们出现在另一边。

我有一个主要工作的实现,唯一的问题是单个 floor 上的精灵在每个循环中越来越近。

我真的不善于描述事情,所以please check this video

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

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-1是update()方法的时间。

每个精灵都位于它自己的update()中,但我已经尝试在Scene的update()方法中做了所有事情,但结果是一样的。

1 个答案:

答案 0 :(得分:0)

如果delta变量随着时间的推移而增加,那么我相信你的pos.x也会以相同的比例增加,这就是为什么距离地板的距离会发生变化。

每次地板离屏时,您是否尝试重置增量值?