Iphone 游戏开发从哪里开始?UIKit vs核心动画vs QuartzCore vs OpenGL vs cocos2D

Iphone 游戏开发从哪里开始?UIKit vs核心动画vs QuartzCore vs OpenGL vs cocos2D,iphone,ios,opengl-es,cocos2d-iphone,quartz-core,Iphone,Ios,Opengl Es,Cocos2d Iphone,Quartz Core,如果我有兴趣了解iPhone/iPAD上的游戏开发,有没有关于开始研究哪种技术的建议?事实上,只要对这些技术中的每一项进行简单的介绍,强调它如何适合于典型的游戏开发,那将是非常好的,因为这个问题的原因是我不理解这些技术是如何结合在一起的。因此,在这种情况下,它们大致适合于这里: UIKit 核心动画 石英砂 OpenGL cocos2D 我得到的印象是cocos2D将是一个不错的选择,它似乎是OpenGL的一个更简单的包装器?不确定UIKit、Core动画和QuartzCore的结果如何?好

如果我有兴趣了解iPhone/iPAD上的游戏开发,有没有关于开始研究哪种技术的建议?事实上,只要对这些技术中的每一项进行简单的介绍,强调它如何适合于典型的游戏开发,那将是非常好的,因为这个问题的原因是我不理解这些技术是如何结合在一起的。因此,在这种情况下,它们大致适合于这里:

  • UIKit
  • 核心动画
  • 石英砂
  • OpenGL
  • cocos2D

我得到的印象是cocos2D将是一个不错的选择,它似乎是OpenGL的一个更简单的包装器?不确定UIKit、Core动画和QuartzCore的结果如何?

好吧,我会尽量简短地回答一个相当长的问题:这取决于具体情况

现在有一些更详细的想法和解释——这很长。如果你不想读到最后,一定要读最后几个句子

首先,我需要澄清的是,您列出的“技术”或API主要与图形有关 (除了UIKit,它也处理输入),只要您理解,就可以了 图形只是其中的一部分(根据我的经验,我可能会加上“小调”) 一整场比赛

除了图形,在做一个真正的游戏时,还有很多东西需要处理。 为了避免过多地回避这个问题,我只想说几句流行语: 游戏逻辑、人工智能、资源管理、物理、交互、网络(可能)、声音等。 我的建议是找一本关于这一主题的好书,深入研究[1,2]

现在我略读了一遍,回到你的问题:

基本上,OpenGL和QuarzCore是“在屏幕上绘制某些内容”的核心技术。所有其他技术都建立在这之上。所以理论上,如果你想那样做 通过这种方式,您可以单独使用OpenGL或QuarzCore实现与图形输出相关的所有功能(然而,您必须考虑QuarzCore仅是2D图形,而OpenGL也支持3D,2D实际上只是3D的一个特例)。事实上,我相信Quarz也是在OpenGL之上构建的,但我不确定这一点

UIKit是建立在这些基础之上的,使用它基本上可以做两件事:a)避免重新发明轮子;b)使用户界面的创建更容易、更快、更健壮。当然,您可以通过指定四边形的坐标并将其发送到OpenGL进行处理来绘制每个按钮本身。然后,您必须检查每个用户输入,如果它点击您的按钮,并调用相关的处理程序。然而,仅仅创建一个UIButton实例(甚至在IB中)并指定一个点击处理程序就可以省去很多工作

一句话:UIKit非常适合创建用户界面。此外,它还可以与OpenGL和QuarzCore一起使用。我在iOS上甚至在游戏中使用它作为用户界面

关于Cocos2D:这是一个建立在OpenGL之上的“游戏引擎”。因此,它包含了很多在运行自己的基于OpenGL的引擎时必须自己处理的内容,例如场景管理、精灵、纹理、网格、资源等。我相信它还与物理和碰撞检测库有联系。然而,为了了解那里发生了什么,需要学习计算机图形和游戏是如何工作的[1,2,3]

一句话:您可以使用Cocos2D作为(2D)游戏图形,使用UIKit作为用户界面

CoreAnimation则用于制作CoreGraphics内容的动画。它提供了一个简单的界面,例如用于平滑滑动或旋转物体,封装所有需要的计算(插值、重画等)。不会与OpenGL一起工作-但我认为Cocos2D也会为此提供一个包装器

底线:用于奇特的用户界面动画

说了这么多,仅仅是略过头顶,我一开始并不想吓唬你

对于你的特殊游戏(每个游戏都是特殊的),你可能只需要UIKit和图形的协同动画就可以了,它很可能会成为一款轰动一时的游戏。它们允许大量绘图通过易于使用的界面进行,而且它们不需要太深的背景知识,对于小型项目来说性能足够好

如果你有一个伟大的游戏想法,使用最简单的图形解决方案,将满足你和你的玩家,并实现它。一旦你开始了,你仍然可以在必要时改进它

[1]http://www.mcshaffry.com/GameCode/

[2]http://www.gameenginebook.com/


[3]http://www.opengl.org/documentation/red_book/

非常好-感谢您的概述-我会查看参考资料。顺便问一下,有没有理由不选择cocos2d超核心动画?i、 你知道cocos2d是否能做核心动画所能做的,还有更多吗?我不太喜欢cocos2d,但我认为它能做CA所能做的,还有更多,但是用OpenGL而不是Quarz。所以UIKit和Quarz动画将与CA一起使用,其他一切都与Cocos一起使用-但正如我所说的,我不确定它们提供了什么(但通常任何一个好的游戏引擎都有一个很好的数学库来支持)。是的,我想到的是不同之处在于Cocos2D是一个(我读过完全成熟的书,但我无法确认)“游戏引擎”CA只是一种向UI元素添加动画的简单方法,所以这肯定是一个区别。您说过,在使用OpenGL时,2D是3D的特例。因此,如果我们想处理每像素级别的图像(例如背景),您认为使用OpenGL或QuartzCore更好吗?答案同样取决于(您的经验、您已有的内容、您更了解的内容等)。从零开始,QuarzCore可能更容易开始。我不知道你是否能用它做所有你能用OpenGL做的事情。嗯,是的,在奥普