如何在iPhone上创建粒子系统并保留创建的粒子?

时间:2010-05-26 13:00:20

标签: iphone particles

我需要创建一个粒子系统并保留创建的粒子。我需要用iphone加速度计摇动/移动创建的粒子。此外,粒子的数量需要非常高(我需要显示沙子!)。

我没有任何OpenGLES编程经验。

初步搜索后,我发现Cocos2D可用于粒子生成。但是没有办法将粒子保留在CCParticle系统中。作为一种解决方法,我尝试在粒子生成结束时创建许多精灵并将它们显示为粒子。但是用加速度计移动少量精灵会大大降低帧速率。

请建议如何实现这一点,以及我是否应该寻找其他框架或者是否有某种类似的演示代码。

谢谢, Swapnil

3 个答案:

答案 0 :(得分:5)

在这里,你去了iphoneparticles,一个用于iPhone的OpenGL ES中的开源粒子生成器。如果您想了解它是如何制作的,请查看源代码。

另外,您可能需要查看this article中演示的演示应用的源代码。它使用由71 Squared创建的粒子发射器类。

答案 1 :(得分:5)

查看CAReplicatorLayer,它允许您使用Core Animation创建漂亮的粒子系统。 Apple有一个good example of this用于Mac,我ported to the iPad

答案 2 :(得分:1)

尝试了所有提到的方法,但没有一个适合我想要实现的目标。

只要我创造粒子,事情就可以了。但是当我开始使用它们作为精灵(或者创建新的精灵作为粒子消失)并使用加速度计移动它们时,性能非常糟糕,因为沙粒的数量很大。

所以这是一个我将要尝试的解决方法:

创建一个巨大的精灵表,每个精灵大小为320 * 480,显示散布在不同位置/方向的沙子,并根据加速度计输入更改精灵。

我知道这听起来像是一个蹩脚的工作,但我创建了一个小的精灵表POC并没有那么糟糕。

如果您认为此解决方法存在某些缺陷或我应该使用其他方法,请告诉我。

谢谢, Swapnil