一切都在问题之中,我已经与 cocos2d 合作得足够多,可以说它是一个很棒的库,但今天我只想在整个 UIKit 项目中使用粒子系统。据我所知,不幸的是,我必须用 OpenGL 实现一个。有什么建议么 ?
7 回答
您可以使用 Core Animation 和CAReplicatorLayer来生成粒子系统,而无需下拉到 OpenGL ES。Joe Ricioppo 的“ To 1e100f And Beyond with CAReplicatorLayer ”介绍了如何使用这个类。此外,Apple 有他们的ReplicatorDemo示例应用程序,我将其移植到 iPad上。
在 Mac 上,还有CAEmitterLayer,它在 iOS 5.0 中可用。Apple 为此提供的示例应用程序包括Fire(展示火焰和烟雾效果)和Fireworks(模拟烟花表演)。
对于仅 UIKit 的项目,您可以使用Particle Playground(Mac App Store 链接)在模拟器中配置您的 Mac 上的发射器,并将其导出为准备好集成到您的项目中的代码。PP 与 matt 提到的 Particle Designer 非常相似。
如果您不想使用帮助器以便更深入地研究 CAEmitter(Layer/Cell),那么我建议您阅读Ray Wenderlich 网站上的本教程或Arg 上的这篇文章!团队的博客。他们在配置我自己的发射器方面帮助了我很多。
完全披露:我是 Particle Playground 的开发者。我厌倦了整个调整-重新编译-观察-循环,并在业余时间开发了 PP。
请注意,CAEmitterLayer 是在 iOS 5 中添加的。这使得粒子效果更容易。
我还没有使用它,但我已经看到了这样做的例子。我不确定 Apple 的 fire 样本移植到 iOS 5 会有多难。我可能会试一试
我也发现在 UIKit 中设计粒子是一个挑战,所以我为它创建了一个应用程序。现在用它在我的游戏中创建各种粒子。太简单!它是一个 iDevice 应用程序,因此您可以在公共汽车或商场里玩粒子并立即导出代码。
如果有人感兴趣:http: //iapps.emirbytes.com/particlex/index.html
在 UIKit 中,您使用 QuartzCore 框架构建粒子系统。有关完整示例,请阅读这篇文章:
http://www.raywenderlich.com/6063/uikit-particle-systems-in-ios-5-tutorial
你应该使用CAEmitterLayer
这里有一些教程
- https://www.hackingwithswift.com/read/37/5/creating-a-particle-system-using-caemitterlayer
- https://medium.com/call-voicy/comets-animating-particles-in-swift-3431a7f1b250
这里有一些玩它的方法
- 这里是如何使用 SpriteKit http://www.techotopia.com/index.php/An_iOS_8_Sprite_Kit_Particle_Emitter_Tutorial
- Xcode 8+ 还包括 Playground,您可以创建一个 Playground 来玩它https://github.com/onmyway133/ParticlePlayground
您还应该考虑用作 cocos2d 插件的 Particle Emitter (http://particledesigner.71squared.com/)。
这里提供了一个教程: http ://www.71squared.com/2009/05/iphone-game-programming-tutorial-8-particle-emitter/