什么时候从 drawRect: 切换到 OpenGL/Metal?

When to switch from drawRect: to OpenGL/Metal?

我一直在构建一个 2D 游戏,我一直在 UIView 子类中绘制游戏区域,我在其中覆盖 drawRect: 并用很多 UIBezierPath* 对象。我在 iOS 方面不是很有经验,我一直在想这是否是正确的方法。

所以我想我的问题是多少才够?我什么时候应该停止使用 UIBezierPath 并开始使用 OpenGL 或 Metal?我可以使用它们在 UIView 内部绘图还是它们可以完全控制屏幕?

关于何时应该停止使用 UIBezierPath 没有答案。您需要在一开始就问自己,您需要使用什么工具来实现您的应用程序所需的功能,使其按您希望的方式工作。与 openGL 等相比,您使用的核心图形程序非常简单,但性能并不是最好的,而且大多数情况下,您在绘图中甚至可以实现的目标非常有限。一般来说,您应该使用尽可能简单的程序,只要它适合您。

OpenGL 和 Metal 与视图绑定,不会控制整个 window(iOS 中的屏幕)。此外,您仍然可以在不破坏任何绘图或功能的情况下向这些视图添加子视图,例如,即使是全屏视图 openGL 应用程序也可以有一个简单的 UIButton 来暂停游戏或让您的主角拿起那把大剑和杀龙救公主