在另一个中添加SKShapeNode

时间:2015-06-15 12:45:07

标签: swift sprite-kit skshapenode

我想在另一个广场上画一个正方形;但我不能以正确的方式定位第二个。 基于第一个方形坐标,我可以做什么定位?

    var tileBackground = SKShapeNode(rectOfSize: CGSize(width: screenWidth, height: screenWidth))
    tileBackground.name = "tileBackground"
    tileBackground.fillColor = SKColor.whiteColor()
    tileBackground.position = CGPoint(x: frame.midX, y: frame.midY);
    self.addChild(tileBackground)

    var tile = SKShapeNode(rectOfSize: CGSize(width: tileSize, height: tileSize))
    tile.name = "tile1"
    tile.fillColor = SKColor.redColor()
    tile.position = CGPointMake(100,100)
    tileBackground.addChild(tile)

2 个答案:

答案 0 :(得分:1)

您应该使用SKSpriteNode。这样您就可以轻松添加它而无需手动设置位置。因为在SKSpriteNode中,中心始终是节点的中心:

<img/> <a> <div>

答案 1 :(得分:0)

节点的位置相对于其父位置。 如果您希望tile节点位于其父节点的中心,则将其位置设置为:

tile.position = CGPoint(x: tileBackground.size.width / 2.0, y: tileBackground.size.height / 2.0)

将瓷砖放在tileBackground节点的中心。 另请注意,您无需更新磁贴位置以“跟随”tileBackground节点。更新tileBackground位置会自动将磁贴保持在其中心