Я немного смущен тем, как работают методы SKNode
convertPoint:fromNode:
и convertPoint:ToNode:
, я просмотрел документы, но это не так очевидно, что они делают. Например, это (см. Диаграмму ниже) является небольшим тестом, который я использовал с помощью convertPoint:fromNode:
. Черная область - это фон SKScene
, синяя область SKSpriteNode
, родившаяся на SKScene
, красная область - это еще одна SKSpriteNode
родительский синим спрайтом. Якорные точки для обоих спрайтов показаны маленькими зелеными точками. То, что я хотел сделать, это получить позицию сцены для красного спрайта, который я использовал, используя следующий код:
CGPoint positionInScene = [self convertPoint:[self position]
fromNode:[self redSprite]];
Результатом этого является
positionInScene = [105, 205]
Это то, что я ожидал, поскольку это было бы началом красного квадрата в пространстве сцены. То, что я смущен, - это аргументы. Из чего я могу догадаться:
[SKNode_A convertPoint: CGPoint_B toNode: SKScene_C]
- SKNode_A = Координатное пространство node для преобразования в...
- CGPoint_B = Точка для преобразования (не уверен, почему ее [позиция] выше)
- SKNode_C = Короткое пространство node для преобразования из...
Моя первоначальная попытка в этом была [self convertPoint:[redSprite position] fromNode:redSprite]
, потому что я хотел преобразовать источник красного спрайта в сцену. Кажется, что это немного неуклюже, чтобы развернуть свою голову, если кто-то может немного рассказать об этом и его другом convertPoint:ToNode:
, и это будет очень оценено.