我的iPhone游戏需要OpenGL吗?

Ben*_*Tan 10 iphone opengl-es

在iPhone上:

如果我正在编写一个具有多个级别的游戏,具有多个动画(图像序列),jpg和png(透明),一些全屏而一些不是,一些循环,一些只播放一次.这样做的最佳方式是什么?每个级别最多可能有10MB的图像.添加到此音乐和视频(剪切场景).所有2D图形,没有3D模型.

是否需要OpenGL?或者这可以通过Quartz或Core Animation实现吗?

phi*_*red 8

我使用UIViews和一些核心图形(Quartz 2D)做类似的工作,它工作正常.我发现Core Graphics中的自定义绘图将它推得更远,因此 - 当给定图像而不是必须绘制自己时,UIViews工作得最好.还要注意大量的透明胶片.不过,您可能会发现大型或长型(多帧)动画将成为杀手锏.有一些技术可以最大限度地减少动画的影响,如果没有立即显示,则允许它从内存中清除图像(我忘记了设置).这可能会导致您的动画不像原本那样平滑(不确定Open GL ES是否会对此有所帮助).

您应该使用UIViews进行原型设计,然后决定是否值得为OpenGL ES做额外的工作.此外,如果您还不熟悉OpenGL/Open GL ES,那么这是一个陡峭的学习曲线.

  • 我不能说你的经验,诺斯雷德娜,但对我来说,CG让事情变得相当容易和困难 - 就像任何好的API一样.使用OpenGL/ES,您必须阅读相当多的内容,以便在开始执行任何操作之前掌握核心概念 (2认同)

Ben*_*tow 7

我已经使用Quartz和OpenGL在iPhone上进行图形处理,虽然OpenGL具有更高的学习曲线,但它提供了比Quartz更好的性能.假设你有一个场景涉及在彼此之上绘制6个大的,半透明的图像.Quartz会做到这一点,但你最多可能得到15fps.OpenGL利用了iPhone的PowerVR芯片,并且绘图是硬件加速的 - 因此您可以将这些图像加载到OpenGL纹理中并以25-30fps渲染没问题.

我同意Phil的观点 - 尝试使用Quartz进行测试,看看它是否符合您的需求.OpenGL非常强大,但它的API缺少Quartz的一些便利功能(例如保存/恢复图形状态).

完全相同,你可能想看看Unity的iPhone开发工具(http://unity3d.com/#iphone).他们利用OpenGL,但为您提供了一个IDE来创建您的游戏.它抽象出所有图形级代码,因此您可以专注于高级游戏.我的兄弟用它来写iPhone游戏,这非常酷.


epa*_*tel 6

我推荐看看Cocos2D iPhone.

适用于iPhone的cocos2d是用于构建2D游戏,演示和其他图形/交互式应用程序的框架.它基于cocos2d设计:它使用相同的API,但不使用python而是使用objective-c.