如何解决如何将一个 SpriteNode 的坐标转换为另一个不是子节点或后代节点的坐标
在我的 SpriteKit 场景中,我进行了以下设置:
多个名为 sourceNode
的节点是场景的直接子节点。
名为 targetNode
的节点是另一个名为 sectionNode
的节点的子节点,sectionNode
也是 scene
的子节点。
self
--> sourceNode
self
--> sectionNode
--> targetNode
当使用 touchesMoved
方法移动 sourceNode
时,我将 position
的 sourceNode
设置为触摸的当前位置。一旦触摸位置高于 targetNode
,我想通过匹配它们的位置将 sourceNode
对齐到 targetNode
。
我的问题:
我似乎无法在两个坐标空间之间正确转换。我尝试了 convert(_:from:)
和 convert(_:to:)
的不同变体,但都不起作用。我知道 convert
期望两个节点都在同一个节点树中,但由于它们都是场景的后代,所以它们不应该被视为同一节点树的一部分吗?
(如果 sourceNode
和 targetNode
与兄弟姐妹在同一个坐标系中,代码只需将 targetNode
的位置分配给 {{1} })
sourceNode
解决方法
要将 sourceNode 移动/捕捉到 targetNode 的坐标,您可以执行以下操作:
sourceNode.move(toParent: sectionNode)
sourceNode.position = targetNode.position
sourceNode.move(toParent: scene)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。