在另一个中添加 SKShapeNode
Add SKShapeNode in another one
我想在另一个方格中画一个方格;但我无法以正确的方式放置第二个。
根据第一个方格坐标定位可以做什么?
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)
节点的位置是相对于其父位置的。
如果您希望图块节点位于其父节点的中心,则将其位置设置为:
tile.position = CGPoint(x: tileBackground.size.width / 2.0, y: tileBackground.size.height / 2.0)
这会将图块放置在 tileBackground
节点的中心。
另请注意,您不需要将图块位置更新为 "follow" tileBackground
节点。更新 tileBackground
位置会自动将图块保持在其中心
您应该改用 SKSpriteNode。这样您就可以轻松添加它,而无需手动设置位置。因为在一个SKSpriteNode中,中心永远是节点的中心:
var tileBackground = SKSpriteNode(color: UIColor.whiteColor(), size: CGSizeMake(width: screenWidth, height: screenWidth))
tileBackground.name = "tileBackground"
tileBackground.position = CGPoint(x: frame.midX, y: frame.midY);
self.addChild(tileBackground)
var tile = SKSpriteNode(color: UIColor.redColor(), size: CGSize(width: tileSize, height: tileSize))
tile.name = "tile1"
tileBackground.addChild(tile)
我想在另一个方格中画一个方格;但我无法以正确的方式放置第二个。 根据第一个方格坐标定位可以做什么?
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)
节点的位置是相对于其父位置的。 如果您希望图块节点位于其父节点的中心,则将其位置设置为:
tile.position = CGPoint(x: tileBackground.size.width / 2.0, y: tileBackground.size.height / 2.0)
这会将图块放置在 tileBackground
节点的中心。
另请注意,您不需要将图块位置更新为 "follow" tileBackground
节点。更新 tileBackground
位置会自动将图块保持在其中心
您应该改用 SKSpriteNode。这样您就可以轻松添加它,而无需手动设置位置。因为在一个SKSpriteNode中,中心永远是节点的中心:
var tileBackground = SKSpriteNode(color: UIColor.whiteColor(), size: CGSizeMake(width: screenWidth, height: screenWidth))
tileBackground.name = "tileBackground"
tileBackground.position = CGPoint(x: frame.midX, y: frame.midY);
self.addChild(tileBackground)
var tile = SKSpriteNode(color: UIColor.redColor(), size: CGSize(width: tileSize, height: tileSize))
tile.name = "tile1"
tileBackground.addChild(tile)