我对SKNode
方法convertPoint:fromNode:
和convertPoint:ToNode:
的工作方式有些困惑,我查看了文档但它们并不明显。例如,这是我使用convertPoint:fromNode:
进行的小测试(见下图)。黑色区域是SKScene
背景,蓝色区域是附加到SKScene
的SKSpriteNode
,红色区域是附加到蓝色精灵的另一个SKSpriteNode
,两个精灵的锚点由小绿点表示。我想做的是获取红色精灵在场景中的位置,我使用以下代码实现:
CGPoint positionInScene = [self convertPoint:[self position]
fromNode:[self redSprite]];
这将产生的结果是: 这将产生的结果是
positionInScene = [105, 205]
这正是我所预料的,因为那将是场景空间中红色正方形的起源。但让我感到困惑的是参数。从我猜测的情况来看:
[SKNode_A convertPoint: CGPoint_B toNode: SKScene_C]
- SKNode_A = 要转换到的节点坐标空间...
- CGPoint_B = 要转换的点(不确定为什么上面是[self position])
- SKNode_C = 要从中转换的节点坐标空间...
我最初尝试使用[self convertPoint:[redSprite position] fromNode:redSprite]
,因为我想将红色精灵的原点转换为场景。如果有人能对这两种方法convertPoint:fromNode:
和convertPoint:toNode:
进行解释,那将非常感激。
[self convertPoint:[self position] fromNode:[self redSprite]]
放在哪里了?它属于场景吗? - Andrey Gordeev