我有一个CAEmitterCell工作,但我希望粒子减速和停止。看起来,如果我能接触到所有的粒子,我就可以把它们的速度和/或加速度降到0,它们就会停止运动。
我试过这样的方法:
NSArray *cells = [_layerEmitter emitterCells];
for (CAEmitterCell* cell in cells) {
...但这是行不通的,因为我的layerEmitter只有一个emitterCell,我不需要emitterCell,而是它已经产生的粒子。
我在文档中没有看到这个,这让我相信我有一个概念上的问题。我很感谢你的帮助。
发布于 2013-05-23 22:09:23
不幸的是,粒子只存在于窗口服务器中,这是一个与应用程序完全不同的进程。(它被称为backboardd,从iOS 6.0开始。)当发射器运行时,您可以通过在调试器中暂停应用程序来推断这一点。即使你的应用程序被停止,粒子继续在模拟器或设备上产卵和移动。所以你不可能接触到单个粒子。
如果发射器单元的velocityRange和emissionRange都是零(意味着在粒子的速度矢量中没有随机性),那么您应该能够通过播放单元的xAcceleration、yAcceleration和zAcceleration属性来使粒子减速。然而,粒子会减速到一个停止,然后反向。如果希望粒子在停止时消失,请适当设置lifetime属性。
https://stackoverflow.com/questions/16724498
复制相似问题