我试图将一个简单的黑盒子用作游戏的HUD元素的参考。但它的定位总是非常关闭,主要是盒子的y位置。我试图将我的hud box定位在屏幕的最顶部并产生整个宽度,但CGRectGetMaxY(screenSize)将它定位在屏幕的最底部。
var hudLayer = SKSpriteNode(color: SKColor.blackColor(), size: CGSizeMake(self.size.width, 200))
hudLayer.anchorPoint = CGPointMake(0, 1)
hudLayer.position = CGPointMake(CGRectGetMinX(screenSize), CGRectGetMaxY(screenSize))
hudLayer.zPosition = 100
self.addChild(hudLayer)
我是如何设法让我的maxY坐标位于最底部的?我很困惑,并尝试过其他y定位方法(self.size.height)。到目前为止,我发现自己必须将CGRectGetMaxY(screenSize)乘以3.6以使其达到顶峰,但我不愿意。
关于为什么我的y坐标令人难以置信地关闭的任何解释?我设置了锚点,因此它应该使用左上角来定位自己。另一个问题是,我不能在4s上看起来一样。在4s模拟器上,尽管使用screenSize来计算相对位置,但是hud bar看起来要低得多。
感谢。
答案 0 :(得分:1)
您的问题听起来似乎SKScene
的尺寸与SKView
尺寸相同。要解决此问题,您应该设置场景的大小和比例模式:
scene.scaleMode = .AspectFill
scene.size = skView.bounds.size
最简单的设置位置可能在GameViewController
,当您设置SKScene
时。或者,您也可以在didMoveToView
。{/ p>中使用SKScene
方法进行设置