Создание нескольких файлов 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, которые управляют узлами в сценах. Учитывая, что я использую Глобальную / Базовую Сцену для обработки навигации и других глобальных свойств.