Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.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
如何解决CGPath性能差的问题?[iOS 8/SpriteKit中的曲线热克隆]_Ios_Swift_Ios8_Sprite Kit - Fatal编程技术网

如何解决CGPath性能差的问题?[iOS 8/SpriteKit中的曲线热克隆]

如何解决CGPath性能差的问题?[iOS 8/SpriteKit中的曲线热克隆],ios,swift,ios8,sprite-kit,Ios,Swift,Ios8,Sprite Kit,更新 更多信息请点击此处: 我正在学习新的Swift语言。为了挑战自己,我正在尝试在iOS 8上用SpriteKit构建一个Curve Fever克隆。我用CGPath在玩家后面画了一条路径(一个圆圈) 这很好用。然而大约10秒后,FPS从60 FPS快速变为9 FPS。我还注意到内存使用量大约为100MB甚至更多。对于绘制移动圆和路径的简单游戏来说,这是不正常的。这是正确的方法吗?删除并重新添加SKShapeNode是多余的,会对性能产生不利影响: line.removeFromParent

更新

更多信息请点击此处:

我正在学习新的Swift语言。为了挑战自己,我正在尝试在iOS 8上用SpriteKit构建一个Curve Fever克隆。我用CGPath在玩家后面画了一条路径(一个圆圈)


这很好用。然而大约10秒后,FPS从60 FPS快速变为9 FPS。我还注意到内存使用量大约为100MB甚至更多。对于绘制移动圆和路径的简单游戏来说,这是不正常的。这是正确的方法吗?

删除并重新添加SKShapeNode是多余的,会对性能产生不利影响:

 line.removeFromParent()
 line.path = linePath // Update path
 self.addChild(line)
这应足以:

 line.path = linePath // Update path
另外值得注意的是,在使用完路径后,应该通过
cgpathlease(linePath)
释放路径


另外请注意,如果您在模拟器上进行测试,性能将很快下降,因为它使用了。

由于自动内存管理,当前CGPathRelease不可用。
 line.path = linePath // Update path