если вы перемещаете слой, не перемещая его дочерние спрайты, sprite.position
вернет то же значение даже после перемещения слоя, потому что он возвращает его относительно пространства узлов (слоя).Чтобы получить положение спрайта в соответствии с миром или вашей сценой, вам нужно преобразовать его в мировое пространство:
CGPoint worldPosition = [self convertToWorldSpace:sprite.position];
Я надеюсь, что это отвечает на ваш вопрос, потому что он не был очень ясным.