如何在游戏场景中均匀分割两个SKSpriteNodes

时间:2015-07-13 02:01:37

标签: swift sprite-kit skspritenode cgpoint

我正在努力实现以下结果。将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:?的坐标进行硬编码?

1 个答案:

答案 0 :(得分:1)

如果您想将节点放在屏幕上的同一点,无论设备如何,您都应该这样做:

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

还有GetMaxX,GetMaxY等。如果你cmd +点击Xcode中的方法,你会看到更多类似的方法。如果要将节点放在屏幕上更具体的位置,还可以获取max x或y并乘以小数值。快乐的编码。