某些背景:
我有一个使用OpenGL的现有OS X卡游戏应用程序。
窗口可调整大小,并始终保持4:3的宽高比。
调整窗口大小时,OpenGL视图会相应调整大小。所有视觉元素都相应缩放。即卡片保持相对的尺寸和距离。
我有兴趣将代码移动到使用Sprite Kit的系统,或者主要基于Core Animation层的系统。对于我来说,Sprite Kit对我的需求更具吸引力,但是......
......我担心Sprite Kit的性能(或者更确切地说,不必要的性能,特别是在电池驱动的Mac上)对于一个游戏来说,基本上会将相同的纹理暴露在屏幕上,60fps,即使没有发生任何事情。 (大多数时候,这些牌是静态的,因为玩家会思考他们的下一步行动。)
为了减少所需的一些(重复)绘图,特别是在非常大的窗口尺寸下(例如30英寸显示器上的全屏),我有兴趣使用“脏rects / region”或“as-required”绘图系统
问题:
Sprite Kit是否提供某种脏的绘图系统,或者是否能够实现这样的绘图系统? (或者,它是否基本上以60fps反复绘制所有内容,无论是否需要重绘?)
答案 0 :(得分:0)
SK是一个OpenGL渲染器,它自然会在每帧重绘其内容。然而,这并不会使它变慢。虽然UI框架的粗略绘制是一种提高性能但也降低功耗的方法,但是他们必须使用这种方法,因为在UI框架中渲染通常要慢得多(通常不硬件加速)而不是在OpenGL渲染器中。
另一方面,如果渲染场景的复杂性极端,则SK可以在帧上较慢。但这对纸牌游戏来说听起来不太可能。
通常,在编写一些代码进行测试之前,您不应该关注性能。过早优化和所有...