在Objective C中模拟蜡烛火焰

时间:2010-10-25 22:29:27

标签: iphone objective-c animation particles

作为当前项目的一部分,我被要求在屏幕上显示蜡烛。用户应该能够倾斜设备以使火焰倾斜,并执行动作(例如,轻敲)以吹灭火焰。我对如何实现这一目标感到非常失望。我有过一些想法:

  • 从股票视频网站购买一支蜡烛的电影。这不会让我倾斜或吹灭火焰
  • 获得许多帧并使其动画化以呈现闪烁的火焰
  • 使用某种形式的粒子发射器

我想我的偏好可能是使用粒子发射器,因为我看不到视频工作并且为帧动画获取必要的资源可能是个问题。我知道Cocos2D有一个粒子发射器,但这是一个更大的UIKit项目的一部分,它不能被拆开并重新开始构建在Cocos2D之上。

有没有人对如何实现这一点有任何想法?

4 个答案:

答案 0 :(得分:1)

对于以前的项目,我们有一个网站,必须“刻录”以显示下面的新网站。这是通过记录一张燃烧的纸张的图像然后让一个擅长图形操作的人清理并循环播放视频来完成的 - 这是在Flash中完成的。

您可以做的是将此技术应用于您的蜡烛视频。找出你需要拍摄的模拟你想要创建的所有状态的镜头,包括倾斜和吹灭火焰,并记录它们。然后将其传递给可以创建动画循环的人。

显然这样的事情会花费一些钱,但它会创造最好的结果。

现实的火焰使用图形引擎真的很难,而且看起来很假 - 除非你的预算很多。

答案 1 :(得分:1)

您可以查看关于粒子生成的Nehe教程:

http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=19

要想让它产生看起来像蜡烛的东西并不难。

(您可以在另一个视图中嵌入GL视图。)

答案 2 :(得分:0)

这不是一个真正的Objective-C问题。您需要的是编写OpenGL着色器的介绍。

答案 3 :(得分:0)

您仍然可以在GL中使用粒子生成器并在其他界面上的图层中运行它,这样您就不必撕掉整个应用程序。我看到有些人抱怨混合这些方法的性能,但对于一个简单的情况,它应该可以正常工作。