iOS Universal Device App со SpriteKit, как масштабировать узлы для всех видов?

Я хочу сделатьпейзаж приложение бытьуниверсальный, так что узлы спрайта масштабируются пропорционально размеру представления, на котором работает приложение. Я хотел быполностью программный решение, потому что я не люблю IB.

Моя игра довольно проста, и мне не нужно прокручивать или изменять масштаб, поэтому вся игра всегда будет присутствовать и занимать весь вид.

Возможно ли то, что я ищу, чтобы изменить размер сцены, чтобы всегда соответствовать виду? Если да, можете ли вы объяснить это полностью, потому что я пытался изменить этот раздел моего контроллера представления

    if let scene = GameScene(fileNamed:"GameScene")

быть методом конструктора, который принимает размер в качестве параметра, но XCode это не нравится.

Вещи, которые я пробовал

Использование фракций self.view.bounds.width / height. Это обычно делает все айфоны хорошо выглядящими, но на айпадах растягивает и наклоняет узлы и граничную рамку вокруг вида w.Изменение scaleMode среди всех четырех типов. Я хотел бы сохранить хорошую практику и почувствовать, что .AspectFill (по умолчанию) - это то, с чем я должен заставить работать мое приложение, но которое открыто для предложений. Заметка; Я не хочу черных краев на любом устройстве, просто весь вид отображается / масштабируется пропорционально.Применение программных ограничений. Теперь я довольно новичок в этом и не понимаю ограничений полностью, но никаких руководств, которые я видел даже от RayWenderlich, не говорило об ограничениях на узлах, поэтому я не стал углубляться в это.

Используя такой метод, чтобы конвертировать точки между представлениями. Это на самом деле очень хорошо работало для точечного позиционирования узлов, и, если возможно, я бы хотел, чтобы этот метод сработал, но тогда у меня все еще есть проблема размеров узлов. Также, когда я собираю iPad для этого метода, вид, кажется, начинается как портрет, а узлы выглядят нормально, но затем мне приходится вручную переключать его в альбомную ориентацию, и спрайты и границы просмотра снова портятся. Вот метод:

func convert(point: CGPoint)->CGPoint {
    return self.view!.convertPoint(CGPoint(x: point.x, y:self.view!.frame.height-point.y), toScene:self)
}

Бесчисленные видео-уроки по RW и везде в Интернете.

Заранее спасибо! Я ценю помощь. Я знаю, что эта тема странная, потому что многие люди задают вопросы по этому поводу, но ситуация у всех кажется достаточно разной, чтобы одно решение не подходило всем.

Ответы на вопрос(1)

Ваш ответ на вопрос