【问题标题】:Why use Cocos over UI Kit for a 2D iPhone game?为什么在 2D iPhone 游戏中使用 Cocos over UI Kit?
【发布时间】:2011-03-09 19:24:24
【问题描述】:

我在 cocos 中构建游戏已经有一段时间了,我突然想到使用 UIKit 可能会容易得多。

能否请您帮我权衡利弊,并分享您的一些经验。

以下是我列出的每种优势的基本列表。我觉得我对 cocos 的了解还不够,无法做出最好的明智决定。

可可

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

用户界面工具包

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

任何反馈都会很棒!

编辑:我刚刚看过一个开发者视频(在一个名为 Quest 的开放式 GL 游戏中),他们使用 UI Kit 作为 UI 元素,绘制在 GL 视图的顶部。这对 cocos 是否可行/实用?

【问题讨论】:

  • 挑剔:您在 iOS 设备上看到的所有内容都是使用 OpenGL 绘制的。
  • @Till:一旦遇到 CoreAnimation 可能,但 Core Graphics 是基于 CPU 的绘图。
  • 物理和碰撞检测 + 声音、图集和视差,然后你就会开始倾向于 cocos2d 和花栗鼠或 box2d
  • @Eimantas,什么是视差?在 cocos 中如何使用?
  • 视差主要用于街机游戏中,角色从左到右移动(想想“Contra”),视差是产生“远处背景”效果的东西,它以不同的速度移动。

标签: iphone uikit cocos2d-iphone


【解决方案1】:
  1. Cocos2d 使用 OpenGL 绘制其精灵、运动和粒子。尝试使用 Quartz/Core Graphics(未加速!)从根本上来说速度要慢得多且耗电。
  2. Cocos2d 是一个 sprite 库,首先包含一个场景图。您将重复使用 UIKit 制作场景图。
  3. 在 Cocos 中有很多不错的免费赠品,您必须从头开始开发。

因此,简而言之:它的绘制速度比 CPU 绑定的绘制调用更快,它提供了大多数基于 sprite 的游戏所需的 95%,而无需一遍又一遍地重新发明相同的东西,而且是免费的。

【讨论】:

  • 虽然我不是 Cocos 的粉丝,但我认为这个问题有一点错误的二分法。基于我迄今为止发布的所有仅 iOS 游戏,最快和最简单的方法是使用 OpenGL、Cocos 或其他任何东西作为游戏的实质,坚持使用 UIKit 来处理周围的菜单和屏幕。几乎所有 UIKit 对象都可以接受自定义图形,因此您仍然可以查看自己想要的样式,但按钮、滚动视图、滑块等非游戏内容会按照用户的期望进行操作(并且您无需进行真正的编程工作)部分)。
【解决方案2】:

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

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

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

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

如果您打算为 iPhone 开发游戏,而不仅仅是用于生产力、音乐等的通用应用程序,我强烈建议您使用 Cocos2D。请记住,您仍然可以找到将其与 UIKit 结合起来进行许多操作的方法!这些操作并没有完全丢失!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-16
    • 1970-01-01
    • 2011-11-29
    相关资源
    最近更新 更多