El marco SKShapeNode contiene un punto (0, 0) incluso si CGPath no lo hace

Estoy implementando un juego que carga dinámicamente los charts de background, según el área actualmente visible. El background se dibuja con el uso de SKShapeNode. Para ahorrar memory, estoy dibujando solo una pequeña parte del CGPath. El problema es que, independientemente de las coorderadas de CGPath que uso, el marco resultante de SKShapeNode siempre contendrá el punto (0, 0). Aquí hay un ejemplo:

SKShapeNode *shapeNodePos = [SKShapeNode node]; CGMutablePathRef pathPos = CGPathCreateMutable(); CGPathAddRect(pathPos, NULL, CGRectMake(50, 50, 50, 50)); shapeNodePos.path = pathPos; CGPathRelease(pathPos); NSLog(@"Frame pos = (%f, %f, %f, %f)", shapeNodePos.frame.origin.x, shapeNodePos.frame.origin.y, shapeNodePos.frame.size.width, shapeNodePos.frame.size.height); 

El resultado es:

 Frame pos = (0.000000, 0.000000, 100.000000, 100.000000) 

Sin embargo, espero que SKShapeNode.frame esté limitado solo a los contenidos de CGPath:

 Frame pos = (50.000000, 50.000000, 50.000000, 50.000000) 

¿Es un error en SpriteKit o un comportamiento esperado? Si ese pequeño rectángulo CGPath se dibuja considerablemente lejos del punto (0, 0) ¿puede también impactar negativamente en el performance o Sprite Kit ignorará el área vacía del marco?

¡Gracias por adelantado!

De mis testings, parece que a less que específicamente establezca la position del nodo antes de crear su CGMutablePathRef , el punto inicial siempre será (0,0). Sin embargo, establecer la position del nodo de antemano le brinda los resultados que esperaba.

 SKShapeNode *shapeNodePos = [SKShapeNode node]; shapeNodePos.position = CGPointMake(50, 50); // <<< Set node's position CGMutablePathRef pathPos = CGPathCreateMutable(); CGPathAddRect(pathPos, NULL, CGRectMake(0, 0, 50, 50)); shapeNodePos.path = pathPos; CGPathRelease(pathPos); 

El NSLog ahora imprime

Frame pos = (50.000000, 50.000000, 50.000000, 50.000000)