我宣布了SKSpriteNode
,其中有一个支柱图像。图像是3000 x 50,我已经宣布它是这样的:
var pairs = SKNode()
let pillar = SKSpriteNode(imageNamed: "pillar")
pillar.setScale(0.5)
pillar.physicsBody = SKPhysicsBody(rectangleOf: pillar.size)
pillar.physicsBody?.isDynamic = false
pillar.physicsBody?.affectedByGravity = false
pillar.zPosition = 1
pairs.zPosition = 1
pairs.addChild(pillar)
当我为我的支柱设置位置时,我这样做:
bottomWall.position = CGPoint(x: Int(self.frame.width) + 100, y: 0)
我将y设置为0,但是柱状图像大约在y轴的屏幕中间开始,对于x轴,这个Int(self.frame.width) + 100
将柱子100px从中间定位。
为什么行为以及我如何才能使y: 0
从y: 0
开始x: 0
和x: 0
开始?
答案 0 :(得分:0)
默认情况下,您的SKScene的anchorPoint为0.5,0.5。这就是对象的默认位置在场景的中心。
如果希望从左下角开始放置对象,则需要将场景anchorPoint设置为零。在func didMove(to view: SKView)
self.anchorPoint = CGPoint(x: 0, y: 0)
或
self.anchorPoint = CGPoint.zero
答案 1 :(得分:0)
对象的position
与对象的中心有关。
要使x
和y
代表bottomWall
的左下角,您应该设置
bottomWall.anchorPoint = CGPoint(x:0,y:0)
bottomWall
的行之前
这将使用对象的左下角作为x
和y
相对于屏幕。