3

我试图在快速阅读此内容时了解锚点的基础知识: https ://developer.apple.com/library/ios/documentation/GraphicsAnimation/Conceptual/SpriteKit_PG/Nodes/Nodes.html

我知道在 siwft 中,使用 sprite kit,场景的锚点位于屏幕的左下角。

因此,如果我定位这样的节点:

myNode.position = CGPoint(x: 0, y: 0)
self.addChild(myNode)

它没有出现在我的视野中。所以我尝试了另一件事:

 myNode.position = CGPoint(x: middleOfmyView, y: 0)
    self.addChild(myNode)

现在我看到了广场顶部的一半。所以我从屏幕底部看到了 20 个像素。

所以我补充说:

  myNode.position = CGPoint(x: middleOfmyView, y: 0+myNode.frame.size.height/2)
        self.addChild(myNode)

现在我可以在屏幕中间看到我的整个正方形。

然后我把它放在 x: 0 并让 Y 点这样:

 myNode.position = CGPoint(x: 0, y: 0+myNode.frame.size.height/2)
 self.addChild(myNode)

现在,即使屏幕右下角写有“1 个节点”,我也看不到我的节点出现!

所以我想知道 iPhone 屏幕的 0,0 点真的在屏幕的左下角吗?那么我的精灵节点的锚点在哪里?如何将我的方块放在屏幕的左下角?

这只是为了了解事情是如何运作的……非常感谢您的帮助:)

我正在使用 Xcode 7.3.1,但我仍然不明白为什么第 0 点会让我看不到我的东西……这绝对是一个错误?

4

1 回答 1

3

SKSpritenodes 默认为 (0.5, 0.5) 的anchorPoint,这意味着节点的中间位置位于设置的位置。要更改锚点,请执行以下操作:node.anchorPoint = CGPoint(x: 0, y: 0)此示例将节点的锚点设置为其左下角。请记住,更改 anchorPoint 也会更改旋转原点,并且 anchorPoint 值介于 0 和 1 之间。将正方形放在左下角:

myNode.anchorPoint = CGPoint(x: 0, y: 0)
myNode.position = CGPoint(x: frame.minX, y: frame.minY)

如果您需要其他任何帮助(或者如果我没有涵盖您想要的内容),请随时问我,我会尽力提供帮助

于 2016-08-20T19:18:55.730 回答