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

时间:2011-03-09 19:24:25

标签: iphone uikit cocos2d-iphone

我已经在科科斯建立了一段时间的游戏现在我刚刚发现,使用UIKit可能会更容易。

请你帮助我减轻利弊,分享一些经验。

以下是我的每个优势的基本列表。我觉得我不知道有关科科斯做出最明智的决定。

科科斯

  • 游戏引擎免费提供。每帧暂停/恢复回调
  • 精灵动画
  • 使用open GL(这是真的吗?这是一个优势吗?)
  • ...帮我想一想!

UI工具包

  • 更多帮助/文档/示例代码
  • 熟悉iPhone程序员
  • 易于触摸
  • 轻松查看动画
  • 易于定制
  • 加载时间更快? (这是真的吗?)

任何反馈都会很棒!

编辑:我刚刚看到一个开发者视频(在一个名为Quest的开放式GL游戏中),他们使用了用于UI元素的UI工具包,绘制在GL视图的顶部。这可能/实用cocos吗?

2 个答案:

答案 0 :(得分:11)

  1. Cocos2d使用OpenGL绘制其精灵,动作和粒子。尝试使用Quartz / Core Graphics(不加速!)从根本上说要慢得多,而且耗电很大。
  2. Cocos2d是一个精灵库,首先是场景图。您将使用UIKit重复制作场景图。
  3. 在Cocos中有许多不错的免费赠品,你必须从头开始发展。
  4. 因此,简而言之:它比CPU绑定绘图调用绘制速度更快,它提供了大多数基于精灵的游戏所需的95%,而不会反复重复同样的事情,并且是免费的。

答案 1 :(得分:3)

虽然UIKit对游戏非常有用,但Cocos2D提供了各种更简单的方法来完成许多常见的游戏制作操作。例如,它可以使用简单的几行代码来创建简单的滚动平铺游戏(非常常见的非常流行)来导入“平铺”地图集。就你提到的UIKit相对于Cocos2D的一些好处而言,它们在Cocos2D中也很容易实现非常

触控处理 这就像用“ccTouchesBegan”替换UIKit的“touchesBegan”方法并在init方法中设置self.isTouchEnabled = YES一样简单。

<强>动画: 这在Cocos2d中要容易得多,主要是因为解决了帧率和动画问题。在UIKit中,您无法使用CoreAnimation移动对象,同时仍实现碰撞检测。您必须使用NSTimer为对象设置动画。在Cocos2d中,您可以轻松地为对象(称为精灵)制作动画,并仍然使用碰撞检测和与对象的交互。

更多帮助/文档: Cocos2D提供了大量的文档,甚至更多的代码示例!如果你在那里找不到它,那么越来越多的iPhone游戏开发者在他们的应用程序中实现Cocos2D并且愿意帮助解决许多问题。

如果您计划开发iPhone游戏,而不仅仅是生产力,音乐等常规应用,我强烈建议您使用Cocos2D。请记住,您仍然可以找到将此功能与UIKit结合使用的方法!那些行动并没有完全丧失!