Предотвратить смещение местоположения с помощью узла камеры SpriteKit

Я заметил, чтоcenterOnNode: метод, как показано,

- (void)centerOnNode:(SKNode *)node {

    cameraOffset = [node.scene convertPoint:node.position fromNode:node.parent];
    node.parent.position = CGPointMake(node.parent.position.x - cameraOffset.x, node.parent.position.y - cameraOffset.y);

}

значительно влияет на относительное расположение дочерних узлов. Как только этот метод запускается, дочерние узлы фактически оказываются затронутыми. На следующем изображении показана логика движения NO, а затем движения влево и немного вниз:

Я нарисовал голубую рамку, чтобы оценить физическое тело, на которое, похоже, ссылаются пути вместо обновленного фрейма. Линии и круги, которые вы видите, представляют 2 метода, которые я использую для поиска пути.

Линия с точками - это просто тест лучей, который я делаю, чтобы увидеть, пересекает ли луч вдоль зеленой линии тело квадратной физики.Единственная точка, которую вы видите в верхнем углу - это использованиеGameplayKit построить путь, который избегает черный квадрат как препятствие.

Я изо всех сил пытаюсь понять, как избежать изменения положения камеры в положении детей в сцене.

FYI: Я проверил поиск пути с перемещением персонажа, но НЕ камеры, и он отлично работает (показано ниже)

Очевидно, что смещение камеры является проблемой. Если кто-нибудь может сказать мне, что делать, чтобы сохранить движение камеры и точность определения пути, я был бы очень признателен.

Ответы на вопрос(0)

Ваш ответ на вопрос