C++ 更改设置位置时,cocos2d-x中的粒子闪烁

C++ 更改设置位置时,cocos2d-x中的粒子闪烁,c++,cocos2d-iphone,cocos2d-x,particles,C++,Cocos2d Iphone,Cocos2d X,Particles,我使用的是粒子,稍微修改过的CCParticleFlower,positionVar是垂直线的形式,从上到下。在CCNode更新中,我不断地在整个屏幕上从左到右改变粒子的位置,当粒子到达右侧时,我将x设置为0并开始向右滚动 问题是,当我将X值重置为0时,所有粒子都会闪烁,它们消失大约一帧并出现在下一帧中,这会导致令人讨厌的闪烁效果 在win32、android和ios上,当我以较小的数字递增X值时,不会发生这种情况,但当粒子位置重置为其开始位置时,它会闪烁。我使用的是最新的1.1版本(maste

我使用的是粒子,稍微修改过的CCParticleFlower,positionVar是垂直线的形式,从上到下。在CCNode更新中,我不断地在整个屏幕上从左到右改变粒子的位置,当粒子到达右侧时,我将x设置为0并开始向右滚动

问题是,当我将X值重置为0时,所有粒子都会闪烁,它们消失大约一帧并出现在下一帧中,这会导致令人讨厌的闪烁效果


在win32、android和ios上,当我以较小的数字递增X值时,不会发生这种情况,但当粒子位置重置为其开始位置时,它会闪烁。我使用的是最新的1.1版本(master branch)

我最近遇到了一个类似的问题,当粒子的父粒子改变方向时,粒子会四处跳跃。我不确定是否是完全相同的问题,但以下是我发现的有助于解决问题的线索:

有关职位:

我只是遇到了同样的问题,我花了一段时间才弄清问题的真相,>下面是一个小问题:不要使用

[自调度:@selector(NextFrame:)]

相反,使用

[自计划更新]

并重命名NextFrame:以更新:

使用自定义选择器在CCScheduler队列的最末端调度更新,换句话说,它将导致在粒子系统的update:method之后调用NextFrame:method,因为粒子系统调度自己的更新方法的优先级为1。 这是不好的,因为粒子的四边形的位置使用发射器的当前位置更新,然后在NextFrame:方法中移动发射器,这会导致所有粒子再次移动,因为发射器的位置实际上是绘制粒子的CCNode的位置。 通过使用scheduleUpdate,您可以将update:method的优先级设置为0,这意味着它将在粒子系统的update:method之前被调用,一切都会很好

因此,基本上,向类中添加一个更新方法并调用scheduleUpdate,而不是手动调度它