cocos2d-x 中的粒子在更改 setPosition 时闪烁
Particles in cocos2d-x flicker when setPosition is changed
我正在使用一个粒子,稍微修改了CCParticleFlower,位置Var为垂直线的形式,从上到下。在CCNode更新中,我不断在整个屏幕上从左到右更改粒子的位置,当它到达右侧时,我将x设置为0并开始向右滚动。
问题是当我将 X 值重置为 0 时,所有粒子都会闪烁,它们消失大约一帧并出现在下一帧中,这会导致令人讨厌的闪烁效果。
当我将 X 值增加小数字时不会发生这种情况,但是当粒子位置重置为其起始位置时,它会在 win32、android 和 iOS 上闪烁。我使用的是最新的 1.1 版本(主分支)
我最近遇到了一个类似的问题,每当它们的父粒子改变方向时,粒子就会跳来跳去。 我不确定这是否是完全相同的问题,但这是我发现有助于解决我问题的线程:
http://www.cocos2d-iphone.org/forum/topic/17167
相关帖子:
我刚刚遇到了同样的问题,我花了一段时间才弄清楚它,>这是低谷:不要使用
[自我时间表:@selector(下一帧:)];
相反,请使用
[自行计划更新];
并重命名下一帧:以更新:
使用自定义选择器会在 CCScheduler 队列的最后安排更新,换句话说,这将导致在粒子系统的 update: 方法之后调用 NextFrame: 方法,因为粒子系统会调度自己的更新方法,优先级为 1。这不好,因为粒子的四边形位置是使用发射器的当前位置更新的,然后在 NextFrame: 方法中移动发射器,这会导致所有粒子再次移动,因为发射器的位置实际上是绘制粒子的 CCNode 的位置。通过使用 scheduleUpdate,您可以真正调度优先级为 0 的 update: 方法,这意味着它将在粒子系统的更新:方法之前调用,一切都会很好。
所以基本上,向你的类添加一个更新方法并调用 scheduleUpdate,而不是手动调度它。
- 处理闪烁窗口事件
- 如何避免LED在循环状态变化中闪烁?
- ExtTextOut 文本的持续闪烁,在一段时间后,文本将恢复为默认字体
- 为什么在使用VK_PRESENT_MODE_FIFO_KHR呈现模式调整交换链图像大小时出现白色闪烁
- 如何在不闪烁的情况下运行ESP32的单元测试
- 清除控制台时C++闪烁
- 使用 Cmake 闪烁浏览器引擎示例?
- 为什么当我输入大量数字时,我的计算器程序开始闪烁和滚动
- 在鼠标按下时移动 SDL2 窗口的功能闪烁窗口并且移动速度不够快
- 对话框窗体快速闪烁,但之后未正确绘制
- 动图在闪烁
- 如何在 Win32 应用中拖动纯色矩形,而不会产生白色闪烁,也不会干扰其他屏幕对象
- DirectX 窗口通过多窗口和多线程快速闪烁
- Windows在OpenGL中更改焦点时会闪烁
- OpenGL纹理闪烁/有时在窗口大小上移动
- 如何在Qt中进行多个图形更改时最大程度地减少屏幕闪烁
- 加载的 obj 模型闪烁并崩溃应用程序
- 如何在只读期间在QLineEdit中显示闪烁的光标
- 当我移动跟踪栏时,如何防止控件(选项卡)闪烁和消失与Windows通用控件6.0?
- cocos2d-x 中的粒子在更改 setPosition 时闪烁