Создание нескольких файлов SKS и использование операторов if для определения размера экрана

Я весь день искал подходящую реализацию чехла для iPhone и размеров чехла Ipad. Некоторые люди используют вспомогательные классы для "масштабирования" или "подгонки" сцен SpriteKit к правильному виду в GVC. Я ищу направление, потому что это немного сбивает с толку. Сначала у вас есть эта опция в GVC:

if (UIDevice.currentDevice().userInterfaceIdiom == .Pad) {

        if let scene = Page(fileNamed:"Cover") {
            // Configure the view.
            let skView = self.view as! SKView
            skView.showsFPS = false
            skView.showsNodeCount = false

            /* Sprite Kit applies additional optimizations to improve rendering performance */
            skView.ignoresSiblingOrder = true

            /* Set the scale mode to scale to fit the window */
            scene.scaleMode = .AspectFill
            scene.currentPage = "Cover"

            skView.presentScene(scene)
        }


    } else {

        if let scene = Page(fileNamed:"CoverPhone") {
            // Configure the view.
            let skView = self.view as! SKView
            // skView.showsFPS = true
            //skView.showsNodeCount = true

            /* Sprite Kit applies additional optimizations to improve rendering performance */
            skView.ignoresSiblingOrder = true

            /* Set the scale mode to scale to fit the window */
            scene.scaleMode = .AspectFill
            scene.currentPage = "Cover"
            skView.presentScene(scene)


        } else if let scene = Page(fileNamed:"Cover") {
            // Configure the view.
            let skView = self.view as! SKView
            skView.showsFPS = true
            skView.showsNodeCount = true

            /* Sprite Kit applies additional optimizations to improve rendering performance */
            skView.ignoresSiblingOrder = true

            /* Set the scale mode to scale to fit the window */
            scene.scaleMode = .AspectFill
            scene.currentPage = "Cover"
            skView.presentScene(scene)
        }


    }




}

Это в моем понимании (код реплицирован из CartoonSmart, StoryTeller Bundle v.1.10. Поэтому я бы сделал два файла SkS для.phone один.pad и настроил сцену как таковую, вызывая соответствующую сцену из GVC.

Тогда я вижу эти длинные операторы if: "маленький" фрагмент...

if (platform == "iPad2,4") {
    return "iPad 2 (WiFi)"
}
if (platform == "iPad3,1") {
    return "iPad 3 (WiFi)"
}
if (platform == "iPad3,2") {
    return "iPad 3 (GSM+CDMA)"
}
if (platform == "iPad3,3") {
    return "iPad 3 (GSM)"
}
if (platform == "iPad3,4") {
    return "iPad 4 (WiFi)"
}
if (platform == "iPad3,5") {
    return "iPad 4 (GSM)"   

Суть для типов устройств

куда именно это идет и какова цель?

Я хочу спросить, для iPhone я использую 1920 на 1080, потому что при масштабировании с использованием аспектного заполнения изображения с разрешением 2х оптимизируются правильно и выглядят великолепно. Также настраивает мобильность на Apple TV по линии связи.

Если я займусь созданием двух файлов sks, мне нужно будет реплицировать подклассы и т. Д. Для файлов iPad sks или это способ использовать классы iPhone без необходимости реплицировать файлы.swift, которые управляют узлами в сценах. Учитывая, что я использую Глобальную / Базовую Сцену для обработки навигации и других глобальных свойств.

0 ответов

Другие вопросы по тегам