我有一个CAEmitterCell工作,但我希望粒子减速并停止。似乎我可以访问所有粒子然后我可以将它们的速度和/或加速度降低到0并且它们将停止移动。
我试过这样的事情:
NSArray *cells = [_layerEmitter emitterCells];
for (CAEmitterCell* cell in cells) {
...
但这不起作用,因为我的layerEmitter只有一个emitterCell,我不需要emitterCell,而是它已经创建的粒子。
我没有在文档中看到这一点,这让我相信我有一个概念性的问题。我感谢任何帮助。
答案 0 :(得分:1)
不幸的是,粒子只存在于窗口服务器中,这与您的应用程序完全独立。 (从iOS 6.0开始,它被称为backboardd
。)您可以通过在发射器运行时在调试器中暂停应用程序来推断这一点。即使您的应用程序停止,粒子也会继续产生并在模拟器或设备上移动。因此,您无法访问单个粒子。
如果你的发射器单元的velocityRange
和emissionRange
都是零(意味着粒子的速度矢量没有随机性),那么你应该能够通过玩{{来使粒子减速单元格的1}},xAcceleration
和yAcceleration
属性。但是,粒子将减速停止然后反向。如果您希望粒子在停止时消失,请相应地设置zAcceleration
属性。