ios - Swift:将 SKshapeNode 定位到最左/最右但不在屏幕外

标签 ios swift sprite-kit sknode

我试图将两个 SKshapeNode 定位在屏幕的最左侧和最右侧,而节点的任何部分都不会像这样离开屏幕 http://i.stack.imgur.com/9rhAH.png .我不希望一个节点根据另一个节点定位。 我一直在尝试使用 minX 和 maxX,并使用屏幕宽度和 SKshapeNodes,但我无法弄明白。

这是我目前的情况

class GameScene: SKScene {
    override func didMoveToView(view: SKView) {

        let firstShapeNode = SKShapeNode(rect: CGRect(x: 0, y: 0, width: 50, height: 50))
        firstShapeNode.position = CGPoint(x: 0, y: self.frame.height / 2)
        firstShapeNode.fillColor = SKColor.purpleColor()
        self.addChild(firstShapeNode)

        let secondShapeNode = SKShapeNode(rect: CGRect(x: 0, y: 0, width: 50, height: 50))
        secondShapeNode.position = CGPoint(x: 0, y: self.frame.height / 2)
        secondShapeNode.fillColor = SKColor.cyanColor()
        self.addChild(secondShapeNode)

}

有什么建议吗?

最佳答案

要分别将节点对齐到屏幕的左侧和右侧,试试这个:

firstShapeNode.position = CGPoint(x: firstShapeNode.size.width / 2, y: self.frame.height / 2)
secondShapeNode.position = CGPoint(x: self.frame.maxX - secondShapeNode.size.width / 2, y: self.frame.height / 2)

在 SpriteKit 中,与 UIKit 不同,屏幕上的默认原点 (0,0) 位于左下角。此外,默认情况下,SKNodeposition 是节点的中心,这就是它们需要偏移一半宽度的原因。

关于ios - Swift:将 SKshapeNode 定位到最左/最右但不在屏幕外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39150682/

相关文章:

ios - 在 iOS 和网站之间共享 Facebook 访问 token

ios - 在 iOS 7 中分享到 Instagram

ios - layoutSubviews vs frame didSet 检测 View 的框架何时改变

ios - collectionViewLayout初始化

ios - SKLabelNode 根据文本长度设置字体大小

ios - 如果删除 SKAction,补全仍然运行吗?

ios - Swift:如何获取具有可用数组 MirrorType 的数组元素类型

ios - ~= Swift 中的运算符

ios - 从多个 View Controller 调用文件下载功能;如何将结果返回给那些 VC?

algorithm - 沿已知轴在外部路径边缘内查找内部路径的位置