Предотвратить смещение местоположения с помощью узла камеры 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: Я проверил поиск пути с перемещением персонажа, но НЕ камеры, и он отлично работает (показано ниже)
Очевидно, что смещение камеры является проблемой. Если кто-нибудь может сказать мне, что делать, чтобы сохранить движение камеры и точность определения пути, я был бы очень признателен.