【发布时间】:2017-06-10 04:54:36
【问题描述】:
我正在使用 Swift 和 SpriteKit 构建一个应用程序。该应用程序加载一个与屏幕大小完全相同的 SKSpriteNode,并将其放置在完全覆盖屏幕的位置。但是,用户可以随意移动和缩放这个 SKSpriteNode。我关心 SKSpriteNode 的绝对位置,因为如果节点移动太多,我喜欢将其带回中心,或者将其“捕捉”到屏幕边缘。 (SKSpriteNode 最终会持有一张地图)。
当节点的比例正好为 1.0 时,位置值会按照我的预期工作。但是,当我缩放节点(使用捏合手势)并且比例增长到 1.0 以上时,位置值没有意义。这里有一些图片来说明我的意思。
在这里,您可以看到未缩放节点的尺寸和位置与其所在的场景完全相同。X 和 Y 对于每个地图和场景都是 0:
但是,正如您在下一张图片中看到的那样,当我将地图缩放为更大的 SKSpriteNode 并移动它以使地图的左下角恰好位于屏幕的左下角时,缩放节点的 X 和 Y 值关闭。我希望 X 为 0,Y 为 0,但事实并非如此。
这里发生了什么,如何计算缩放节点的绝对位置?当我说“绝对”位置时,也许我的意思是相对于场景的位置?无论如何,我们很感激你的想法。
【问题讨论】:
标签: swift sprite-kit position skspritenode