1

我有一个 CAEmitterCell 工作,但我希望粒子减速并停止。似乎如果我可以访问所有粒子,那么我可以将它们的速度和/或加速度降低到 0,它们就会停止移动。

我试过这样的事情:

NSArray *cells = [_layerEmitter emitterCells];
    for (CAEmitterCell* cell in cells) {
        ...

但这不起作用,因为我的 layerEmitter 只有一个emitterCell,我不需要emitterCell,而是它已经创建的粒子。

我在文档中没有看到这一点,这让我相信我有一个概念问题。我很感激任何帮助。

4

1 回答 1

2

不幸的是,这些粒子只存在于窗口服务器中,这是一个与您的应用程序完全分开的进程。(它backboardd在 iOS 6.0 中被称为。)您可以通过在发射器运行时在调试器中暂停您的应用程序来推断这一点。即使您的应用程序已停止,粒子仍会继续在模拟器或设备上生成和移动。因此,您无法访问单个粒子。

如果您的发射器单元velocityRangeemissionRange都为零(意味着粒子的速度矢量没有随机性),那么您应该能够通过使用单元格的 、 和 属性来使xAcceleration粒子yAcceleration减速zAcceleration。然而,粒子将减速到停止然后反向。如果您希望粒子在停止时消失,请lifetime适当设置该属性。

于 2013-05-23T22:09:23.913 回答