如何在游戏场景中平分两个SKSpriteNode

How to evenly split two SKSpriteNodes on a game scene

我正在努力实现以下结果。 2 SKSpriteNode 个对象作为子节点添加到 GameScene 中,占据整个宽度。我已将我的范围限制为暂时不处理 landscape 模式,并希望将每个背景的 height 大小调整为 50%(基于当前视图大小)。

override func didMoveToView(view: SKView) {
        let background1 = SKSpriteNode()
        background1.position = CGPoint(x:0,y:0)
        background1.anchorPoint = CGPoint(x:0.0,y:0.0)
        background1.size = view.bounds.size

        let background2 = SKSpriteNode()
        background2.position = CGPoint(x:0,y:0)
        background2.anchorPoint = CGPoint(x:0.0,y:0.0)
        background2.size = view.bounds.size

        self.addChild(background1)
        self.addChild(background2)
    }

我在理解 position 属性 如何根据 CGPoint 工作时遇到了一些麻烦,因为 SKNode 目前都没有出现在我面前。有谁知道 SpriteKit 是否提供弹性尺寸调整功能,这样我就不必硬编码 CGPoint(x:?,y:?) 的坐标?

如果你想将节点放置在屏幕上的同一点而不考虑设备,你应该这样做:

myNode.position = CGPointMake(CGRectGetMidX(self.frame),CGRectGetMidY(self.frame))//places node at middle of screen

还有GetMaxX、GetMaxY等。如果你用 cmd 并点击 Xcode 中的一个方法,你会看到更多类似的方法。如果您想将节点放置在屏幕上更具体的点,您还可以获得最大值 x 或 y 并乘以一个十进制值。编码愉快。