【发布时间】:2015-04-23 07:34:21
【问题描述】:
我正在尝试放置一个简单的黑匣子,以用作游戏 HUD 元素的参考。但是它的定位总是很不对劲,主要是盒子的y位置。我试图将我的 hud 框定位在屏幕的最顶部并生成整个宽度,但 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 看起来要低得多。
谢谢。
【问题讨论】:
-
看看这个,问题是关于 iPad 和 iPhone,但你的问题可能是一样的。 stackoverflow.com/questions/29451131/…
-
正如其他人所说,您的场景看起来正在缩放。要修复它,请参见此处stackoverflow.com/a/25256339/2158465。但是,如果您想保持场景按原样缩放,则需要相对于视图定位节点,请参阅此处stackoverflow.com/a/29171224/2158465
-
第二个链接实际上与我的问题最相关,因为我也在开始时设置了分辨率——除了我的是横向视图。谢谢!
-
@Tyxc 好的,很酷,祝你好运。
标签: swift sprite-kit coordinates