【发布时间】:2016-03-20 18:41:14
【问题描述】:
我想根据屏幕大小更改节点的位置。例如,当我在 iPhone 4s 上运行我的应用程序时,并不是所有的节点都适合屏幕,因为我在开发应用程序时考虑了 iPhone 6 的尺寸。我怎样才能使节点根据运行的设备重新定位自己?我知道我可以通过约束正常实现这一点,但我不知道如何在 Sprite Kit 中做到这一点。我在下面包含了一个屏幕截图。
lblRocketCount.position = CGPoint(x: 100, y: 150)
lblRocketCount.text = "Bullets: 30"
self.addChild(lblRocketCount)
lblMissileCount.position = CGPoint(x: -100, y: 150)
lblMissileCount.text = "Missiles: 5"
self.addChild(lblMissileCount)
leftBorder.position = CGPoint(x: -333, y: 0)
self.addChild(leftBorder)
rightBorder.position = CGPoint(x: 333, y: 0)
self.addChild(rightBorder)
topBorder.position = CGPoint(x: 0, y: 187)
self.addChild(topBorder)
bottomBorder.position = CGPoint(x: 0, y: -187)
self.addChild(bottomBorder)
buttonDirUp.position = CGPoint(x: -200, y: -50)
buttonDirUp.setScale(2.0)
self.addChild(buttonDirUp)
ship.setScale(0.33)
shootButton.setScale(0.7)
missileButton.setScale(0.5)
buttonDirLeft.position = CGPoint(x: -250, y: -100)
buttonDirLeft.setScale(2.0)
self.addChild(buttonDirLeft)
buttonDirDown.position = CGPoint(x: -200, y: -150)
buttonDirDown.setScale(2.0)
self.addChild(buttonDirDown)
buttonDirRight.position = CGPoint(x: -150, y: -100)
buttonDirRight.setScale(2.0)
self.addChild(buttonDirRight)
self.view?.multipleTouchEnabled = true
self.backgroundColor = SKColor.blackColor()
self.anchorPoint = CGPointMake(0.5, 0.5)
self.addChild(base)
base.position = CGPointMake(200, -100)
self.addChild(ball)
ball.position = base.position
self.addChild(ship)
ship.position = CGPoint(x: self.frame.midX, y: self.frame.midY)
self.addChild(shootButton)
shootButton.position = CGPoint(x: self.frame.midX, y: -100)
self.addChild(missileButton)
missileButton.position = CGPoint(x: -200, y: 50)
【问题讨论】:
-
只需将硬编码的绝对值更改为相对值,以屏幕宽度或高度的百分比表示。而且看起来你可以表达一些相对于其他人而不是屏幕的内容。
-
@AlfieHanssen 你能举个例子吗?
-
我不确定我理解你的意思@AlfieHanssen
-
@AlfieHanssen 你能解释一下你的意思吗
标签: ios xcode swift sprite-kit swift2