2017-06-15 70 views
0

我正在制作几乎完全由纯色矩形组成的游戏。目前,我使用SKSpriteNodes来处理所有的矩形,因为它们需要动画和触摸,但是当创建几百个矩形时,我发现它们会导致很多滞后。Swift:绘制矩形的最快方法

我需要的是一个矩形,我可以用纯色,没有纹理或任何东西绘制,但由于某些原因,这会导致很多滞后。

如果可能,我想避免使用OpenGL,因为我之前尝试过,花了几个月的时间去做一件事情。我只是觉得必须有一种我找不到的快捷方式。任何帮助将不胜感激!

+0

你已经做了什么样的分析来确定滞后的来源?是什么让你相信它是特别绘制矩形的时间?从仪器开始,确保在尝试切换技术之前知道自己的时间在哪里。更常见的问题是实体之间的布局或O(n^2)交互,而不是绘图。几百个矩形并不是那么多。 –

+0

@RobNapier导致我认为这是唯一的事情,因为迄今为止我发现的任何帖子都没有使用SKSpriteNodes绘制矩形。我觉得我应该做更快的事情,因为我的整个比赛都是基于矩形的。 – MysteryPancake

+0

您的皮肤简单(即只是一个矩形而不是更复杂的图像)不太可能是您的性能问题的原因。考虑像这样一个动画10k粒子的体验:http://www.sdkboy.com/2014/01/10000-sprites-animating-and-no-loss-in-framerate-using-ios7s-spritekit/从仪器开始。这就是你如何找到瓶颈的地方。在这些尺度下(100s),它几乎总是一个O(n^2)算法,它已经隐藏进了你的系统,而不是绘画的行为。 –

回答

0

皮肤的简单性(即只是一个矩形而不是更复杂的图像)不太可能是性能问题的原因。考虑像this one animating 10k particles这样的体验。从仪器开始。这就是你如何找到瓶颈的地方。在这些尺度下(100s),它几乎总是一个O(n^2)算法,它已经隐藏进了你的系统,而不是绘画的行为。