Я создал сцену SpriteKit с физическими bodys. Это работает очень хорошо. Я также прокручиваю сцену, используя лучшую практику Apple с помощью "камеры node".
Мои сцены node tree:
Scene
|- World
|- Camera node
|- Game nodes with physics bodys
Моя проблема заключается в том, что во время игры я создаю новые узлы с новыми суставами (в основном фиксированными суставами) динамически. В этот момент мир node имеет другое положение, чем в начале (например: at start (0,0), во время игры (1000 500)..) Теперь опорная точка для фиксированных суставов находится не в том положении, в котором я ее хочу, где-то на сцене.
Я предполагаю, что система координат сцены отличается от системы координат физического движка.
Для точки привязки я использую следующее преобразование:
[world.scene convertPoint:node.position fromNode:node.parent];
Я хочу установить опорную точку в позиции "node". После переезда мира node, расчет anchorpoint не работает больше.
Спасибо за вашу помощь!
Greetz - Nekro
Update:
Код в центре сцены на проигрывателе
- (void)centerOnNode:(SKNode*)node {
CGPoint cameraPositionInScene = [node.scene convertPoint:node.position fromNode:node.parent];
node.parent.position = CGPointMake(node.parent.position.x - cameraPositionInScene.x, node.parent.position.y - cameraPositionInScene.y);
}