屏幕上 SKSpriteNode 的 SpriteKit 位置

Posted

技术标签:

【中文标题】屏幕上 SKSpriteNode 的 SpriteKit 位置【英文标题】:SpriteKit location of SKSpriteNode on screen 【发布时间】:2018-05-20 16:30:46 【问题描述】:

我遇到了一个非常简单的问题,但我找不到解决方案...我如何获得SKSpriteNode 的屏幕坐标,因为它的position 属性是CGPoint.zero但是从SKScene 下来,它的孩子数量很多,并且每个父母都会应用一些翻译?

【问题讨论】:

【参考方案1】:

你会想要使用convert(_ point: CGPoint, to node: SKNode)convert(_ point: CGPoint, from node: SKNode)

你可能不得不同时使用这两个

例子

let nestedSpritePos = convert(convert(nestedSpritePos.position, from: nestedSpritePos.parent!), to: self)

假设 self 是场景。您可能不得不尝试这些,但它们绝对是您正在寻找的。​​p>

【讨论】:

不需要重复两次。 scene.convert(position,from:node)。将带您从节点到场景。 node1.convert(position,from:node2) 将把你的位置从节点 2 上到场景,然后下到节点 1 很高兴知道!老实说,我发现“转换”函数是 Apple 文档中描述最糟糕的一个函数

以上是关于屏幕上 SKSpriteNode 的 SpriteKit 位置的主要内容,如果未能解决你的问题,请参考以下文章

Sprite不会用手指/ SpriteKit / Swift 3移动

Swift Sprite Kit 相机运动

Sprite Kit翻转播放器XScale

如何在 Swift 2 中获得 SKSpriteNode 的真正中心?

SKSpriteNode 未加载到屏幕上?

为啥我的 SKSpriteNode 没有以图像的默认分辨率显示?