【问题标题】:Reasons to use CoreGraphics instead of SpriteKit?使用 CoreGraphics 而不是 SpriteKit 的原因?
【发布时间】:2017-05-28 19:41:25
【问题描述】:

SpriteKit 在 GPU 上高效运行。

CoreGraphics 在 CPU 上运行。

我想不出任何 CoreGraphics 可以做而 SpriteKit 做不到的绘图。

鉴于此,您能否说出为什么有人仍希望 CoreGraphics 而非 SpriteKit 用于新应用的原因?

【问题讨论】:

  • 我知道 SO 对“主观”问题和“基于意见”的答案有奇怪的政策,但如果你说“在这两个选择之间(SpriteKit 和 Core Image),这最适合...... ABC ,因为它们都是不同的(在很多方面)并且在某些方面只是互补的,你可能会得到一些很好的答案。在它因为“离题”而关闭之前。或者也许有足够多的人会意识到 ABC 仅在两个框架并不是真正的意见,事实可以显示最佳/正确的客观性。
  • SpriteKit 的优点是它建立在 OpenGL/Metal 之上,而且速度非常快。使用 SpriteKit 开发 2D 游戏会更容易,CoreGraphics 是较低级别的 2D 图形 API,用途更广泛,与游戏和交互没有直接关系。

标签: ios cocoa cocoa-touch sprite-kit core-graphics


【解决方案1】:

这不是一个“非此即彼”的问题,因为他们的能力存在差异。

Core Graphics 可以制作非常复杂的图像,通过具有不同效果和内容的层的极其复杂的构建。但最重要的是,它非常擅长以其他 iOS 框架无法比拟的质量绘制形状和线条。正如苹果所说:

Core Graphics... 提供低级、轻量级的 2D 渲染 无与伦比的输出保真度。你使用这个框架来处理基于路径的 绘图、转换、色彩管理、离屏渲染、 图案、渐变和阴影、图像数据管理、图像 创建和图像遮罩,以及 PDF 文档创建, 显示和解析。

https://developer.apple.com/reference/coregraphics

您不会在 SpriteKit 中找到 PDF 导出创建、图像创建(纹理创建,是的,但不是图像创建),也不会找到复杂的渐变、颜色管理、复杂的图案、变换和屏幕外渲染以及 SpriteKit 中的上下文。

同样,您不会在 SpriteKit 的 Core Graphics 中找到那种抗锯齿功能。

如果你想将你的图像制作作品集成到 UIKit 应用程序中,你最好使用 Core Graphics、Core Image 和 Core Animation 的混合,而不是尝试使用 SpriteKit 来进行那种图像创建和动画一个应用程序。

将 SpriteKit 用于适当受益于将 Sprites 作为主要图形内容的游戏。

例如,您可以选择 Core Animation 和 Core Graphics 来处理那些专注于更多动态内容或需要比 SpriteKit 获得的更高质量的程序化创建内容的游戏。或者,您可以使用 Core Graphics 为 sprite 制作质量高于 SKShapeNode 的内容。

所以......课程的马。

课程基本上是:

A) Sprites 和简单的 2D 渲染和绘图

B) 各种图形、动态绘图以及对质量和输出类型的更高要求

或

C) 两者兼而有之

【讨论】:

  • 您的知识令人震惊。我已经发布了一个相关的问题:stackoverflow.com/questions/41636301/…,以防你有时间。谢谢。
  • @code-ninja-54321 不要再夸大他的自我了。他的头已经快要爆炸了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多