Я немного экспериментировал с комплектом спрайтов, и я заметил, что, когда я позволяю своему приложению бежать некоторое время, он падает.Сбой приложений: проблема с памятью?
То, что я пытаюсь сделать, это нарисовать линию, которая следует моему движению игрока, я сделал это так:
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) он сработает. Узлы являются постоянными, так как я добавляю и удаляю каждый раз один. Частота кадров начинает снижаться прямо перед сбоем и идет от 30 кадров в секунду до 20 кадров в секунду.
То, что я нахожу странным, - это использование памяти, оно много увеличивает, даже если оно используется около 800 МБ перед сбоем.
Есть ли что-то, что я забываю, или это просто, что Путь слишком много увеличивает, чтобы его обрабатывали?
Почему бы вам не попробовать в качестве эксперимента просто изменить путь уже существующей 'shapeLine', чтобы увидеть, является ли часть проблемы непрерывным созданием нового' SKShapeNode'. Другими словами, создайте 'shapeLine' один раз, а затем для других времен, просто обновите путь. –
Уже пробовал, дает тот же результат:/ – DevX10
Как часто этот пробег? Каждый кадр? Например, в течение 25 секунд, сколько раз вызывалось 'update'? –