Я пытаюсь позиционировать простой черный ящик для использования в качестве ссылки для моих элементов HUD для игры. Но расположение его всегда действительно выключено, в основном y-позиция коробки. Я попытался расположить свой ящик hud, чтобы быть на самой верхней части экрана и вскрыть всю ширину, но CGRectGetMaxY (screenSize) позиционирует его в самом низу экрана.SpriteKit Swift Positioning HUD
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)
Как мне удалось установить координату максимума в самом низу? Я недоумеваю и пробовал другие методы y-позиционирования (self.size.height). До сих пор мне приходилось умножать CGRectGetMaxY (screenSize) на 3,6, чтобы получить его на первое место, но я бы предпочел не делать этого.
Любое объяснение относительно того, почему мои координаты y невероятно прочь? Я установил опорную точку, поэтому он должен использовать верхний левый угол для позиционирования. Другая проблема заключается в том, что я не могу сделать это так же на 4s. На симуляторе 4s панель hud появляется намного ниже, несмотря на использование screenSize для вычисления относительного положения.
Спасибо.
Посмотрите на этот вопрос, на вопрос о iPad и iPhone, но ваша проблема может быть одинаковой. http://stackoverflow.com/questions/29451131/spritekit-coordinates-differ-between-ipad-and-iphone/29451330#29451330 – ABakerSmith
Как говорили другие, похоже, что ваша сцена масштабируется. Чтобы исправить это, см. Здесь http://stackoverflow.com/a/25256339/2158465. Но если вы хотите, чтобы ваша сцена масштабировалась так, как вам нужно будет размещать узлы относительно представления, см. Здесь http://stackoverflow.com/a/29171224/2158465 –
Эта вторая ссылка на самом деле наиболее важна для моего потому что я также установил разрешение в начале, кроме моего, в ландшафтном представлении. Благодаря! – Tyxc