나는 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를 사용하는 경우도 많이 증가합니다.
내가 잊어 버리고있는 것이 있습니까? 아니면 경로가 너무 커져서 처리 할 수없는 것입니까?
문제의 일부가 새로운'SKShapeNode'의 연속 작성에서 왔는지 확인하기 위해 이미 존재하는'shapeLine'의 경로를 변경하기위한 실험을 시도해보십시오. 다시 말해,'shapeLine'을 한 번 작성한 다음 다른 시간에는 경로를 업데이트하십시오. –
이미 시도한 결과와 동일한 결과가 나타납니다./ – DevX10
얼마나 자주 실행됩니까? 모든 프레임? 예를 들어, 25 초 동안'update'가 몇 번 호출 되었습니까? –