我正在尝试使用Sprite Kit,我注意到当我让我的应用程序运行一段时间时它会崩溃。
我试图做的是画一条跟随我的玩家动作的线,我这样做是这样的:
var ref: CGMutablePathRef = CGPathCreateMutable()
var shapeLine: SKShapeNode!
override func update (){
shapeLine.removeFromParent()
CGPathAddLineToPoint(ref, nil, player.position.x, player.position.y)
shapeLine = SKShapeNode(path: ref)
shapeLine.lineWidth = 3
shapeLine.path = ref
addChild(shapeLine)
}
这很好用,我每次都删除节点,更新路径,并用新路径创建另一个节点。
关键是在几秒钟后(大约25秒)它会崩溃。 节点是常量,因为我每次都添加和删除它们。帧速率在崩溃前开始减小,从30fps到20fps。
我觉得奇怪的是内存的使用,它增加了很多,甚至在崩溃之前使用了大约800mb。
我有什么遗忘,或者只是路径增加太多而无法处理?
答案 0 :(得分:0)
不幸的是SKShapeNode
出现了问题,此库组件周围存在许多错误,其中大部分都是here报告的。
您可以将SKShapeNode
转换为纹理(textureFromNode
),而不是将其与SKSpriteNode
一起使用。