为什么在iPhone 2D游戏中要使用Cocos而不是UI Kit?

5

我已经在Cocos中开发游戏有一段时间了,但现在我突然想到使用UIKit可能会更容易。

您能否帮助我权衡利弊并分享您的经验。

这是我对两者优点的基本列表。我觉得我不太了解Cocos,以做出明智的决定。

Cocos

  • 免费提供游戏引擎。每帧提供暂停/恢复回调函数
  • 精灵动画
  • 使用OpenGL(这是真的吗?这是一个优点吗?)
  • ......帮我想想还有些什么!

UI Kit

  • 更多帮助/文档/示例代码
  • 对iPhone程序员来说更加熟悉
  • 易于处理触摸事件
  • 易于视图动画
  • 易于自定义
  • 加载速度更快?(这是真的吗?)

任何反馈都将是极好的!

编辑:我刚刚看了一个开发者视频(关于一个名为Quest的OpenGL游戏),他们在GL View上方使用了UI Kit进行UI元素的绘制。这在Cocos中是否可行/实用?


1
挑剔一点:你在iOS设备上看到的所有内容都是使用OpenGL绘制的。 - Till
1
@Till:一旦它到达CoreAnimation,但是Core Graphics是基于CPU的绘图。 - Yann Ramin
1
将物理和碰撞检测、声音、图集和视差相结合,你就会开始倾向于使用带有chipmunk或box2d的cocos2d。 - Eimantas
@Eimantas,什么是视差效果?在Cocos中如何使用它? - Robert
Parallax(视差)主要用于街机游戏中,其中角色从左到右移动(类似于“魂斗罗”),视差是一种效果,可以给人以“远处背景”的感觉,其速度与其他物体不同。 - Eimantas
2个回答

12
  1. Cocos2d使用OpenGL来绘制它的精灵、动画和粒子。尝试使用Quartz/Core Graphics(这是没有加速的!)会基本上更慢且需要更多能量。
  2. Cocos2d首先是一个场景图精灵库。使用UIKit创建场景图将会重复劳动。
  3. 有很多漂亮的免费资源可以在Cocos中使用,而您将不得不从头开始开发。

简而言之:Cocos2d绘图比CPU限制的绘图调用要快得多,它提供了95%的大多数基于精灵的游戏所需的功能,而无需一遍又一遍地重新发明相同的东西,并且是免费的。


2
虽然我不是Cocos的粉丝,但我认为这个问题有点伪二元论。根据我迄今为止发布的所有仅限于iOS的游戏,最快、最简单的方法是使用OpenGL、Cocos或其他类似工具来制作游戏内容,而在周围的菜单和屏幕方面则使用UIKit。几乎所有的UIKit对象都可以接受自定义图形,因此您仍然可以获得所需的外观,但非游戏的元素(如按钮、滚动视图、滑块等)将按照用户的期望进行操作(而且您无需进行任何真正的编程工作)。 - Tommy

4
尽管UIKit对游戏开发非常有用,但Cocos2D提供了许多更简单的方法来完成许多常见的游戏制作操作。例如,它可以使用几行简单的代码导入“Tiled”地图集创建易于滚动的平铺游戏(非常常见且非常受欢迎)。在您提到的一些UIKit优点方面,它们在Cocos2D中也非常容易实现。
触摸处理: 这就像将UIKit的“touchesBegan”方法替换为“ccTouchesBegan”,并在init方法中设置self.isTouchEnabled = YES一样简单。
动画: 在Cocos2d中,这要简单得多,主要是因为帧率和动画问题已经解决了。在UIKit中,您无法使用CoreAnimation移动对象同时仍然实现碰撞检测。您必须使用NSTimer来对对象进行动画处理。在Cocos2d中,您可以轻松地对对象(称为精灵)进行动画处理,并仍然使用碰撞检测和对象交互。
更多帮助/文档: Cocos2D提供了大量的文档,甚至还有更多的代码示例!如果您在那里找不到它,有越来越多的iPhone游戏开发人员在他们的应用程序中实现Cocos2D,并愿意解决许多问题。
如果您计划为iPhone开发游戏,而不仅仅是生产力、音乐等一般应用程序,我强烈建议您使用Cocos2D。记住,您始终可以找到将其与UIKit组合使用的方法来执行许多操作!这些操作并没有完全丢失!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接