Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift:绘制矩形的最快方法_Ios_Swift_Skspritenode - Fatal编程技术网

Ios Swift:绘制矩形的最快方法

Ios Swift:绘制矩形的最快方法,ios,swift,skspritenode,Ios,Swift,Skspritenode,我正在制作一个几乎完全由纯色矩形组成的游戏。目前,我正在为其中的所有矩形使用SKSpriteNodes,因为它们需要动画和触摸,但在创建数百个矩形时,我发现它们会造成很多延迟 我所需要的是一个长方形,我可以用纯色绘制,没有纹理或任何东西,但由于某些原因,这些会导致很多延迟 如果可能的话,我想避免使用OpenGL,因为我以前尝试过它,而且做一件事花了我几个月的时间。我只是觉得一定有一条我找不到的捷径。任何帮助都将不胜感激 皮肤的简单性(即只是一个矩形而不是更复杂的图像)不太可能是性能问题的原因。想

我正在制作一个几乎完全由纯色矩形组成的游戏。目前,我正在为其中的所有矩形使用SKSpriteNodes,因为它们需要动画和触摸,但在创建数百个矩形时,我发现它们会造成很多延迟

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


如果可能的话,我想避免使用OpenGL,因为我以前尝试过它,而且做一件事花了我几个月的时间。我只是觉得一定有一条我找不到的捷径。任何帮助都将不胜感激

皮肤的简单性(即只是一个矩形而不是更复杂的图像)不太可能是性能问题的原因。想想经验吧。从仪器开始。这就是你找到瓶颈所在的方法。在这些比例(100秒)下,几乎总是一个O(n^2)算法潜入到您的系统中,而不是绘图行为。

您做了什么样的分析来确定滞后的来源?是什么让你相信是时候画矩形了?从仪器开始,在你尝试转换技术之前,确保你知道你的时间在哪里。更常见的问题是实体之间的布局或O(n^2)交互,而不是绘图。几百个矩形并没有那么多。@RobNapier唯一让我想到这一点的原因是,到目前为止,我还没有发现任何帖子真正使用SKSpriteNodes来绘制矩形。我只是觉得我应该做得更快一些,因为我的整个游戏都是基于矩形的。你皮肤的简单性(即只是一个矩形而不是一个更复杂的图像)不太可能是你性能问题的原因。考虑一下这样的体验:激活10K粒子:从仪器开始。这就是你找到瓶颈所在的方法。在这些比例(100)下,几乎总是一个O(n^2)算法潜入到你的系统中,而不是画画的行为。@RobNapier你能把这个作为一个答案,让我接受吗?