Swift: 将 SKshapeNode 定位到远处 left/right 但不在屏幕外
Swift: position an SKshapeNode to the far left/right but not offscreen
我正在尝试将两个 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) 位于左下角。此外,默认情况下,SKNode
的 position
是节点的中心,这就是为什么它们需要偏移一半宽度的原因。
我正在尝试将两个 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) 位于左下角。此外,默认情况下,SKNode
的 position
是节点的中心,这就是为什么它们需要偏移一半宽度的原因。