2016-05-12 2 views
0

Я работаю над универсальной игрой (iPhone и iPad) с SpriteKit, и у меня есть проблема с размером фона. Я создал размер изображения 2048x1536 и более изображений для устройств iPhone размером 1136x852, и все же фон обрезается на iPhone. Как я могу это исправить?Универсальный фон приложения SpriteKit

let screenHeight = screenSize.size.height 

    //Backgorund 

    var dayBackground = SKSpriteNode(imageNamed:"BackgroundDay") 
    dayBackground.zPosition = -1 
    dayBackground.position = CGPoint(x:size.width/2, y:size.height/2) 
    dayBackground.anchorPoint = CGPointMake(0.5, 0.5) 
    dayBackground.size = self.frame.size 

GameViewController:

 if let scene = GameScene(fileNamed:"GameScene") { 
     // 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 
     skView.presentScene(scene) 
    } 

iPhone 6 Plus: The background is cropped

IPad Pro: Fit to screen

iPhone 4s: Cropped background

активы файла: @1x size is 2048x1536 and @3x is 1136x852

@ 1x размера 2048x1536 и @ 3x является 1136x852 шкала смысл .AspectFill с .ResizeAll позиция SKSprtieNode не нравится то, что я хочу. Спасибо!

Я попытался разделить изображение на части, но все еще обрезано Я думаю, это происходит потому, что iPhone 6 плюс размер экрана 736x414, а размер сцены - 1024x768, и если я сменю сцену на текущее устройство, мне нужно положение спрайтов для каждого экрана enter image description here

+1

Посмотрите на это: http://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions – Whirlwind

+0

Я вижу, что во всех играх используется одинаковое изображение для всех размеров, как я могу это сделать с помощью масштабного экрана размер? – user1569766

ответ

0

Размеры экрана экрана устройства различны, и каждый должен будет растягивать размеры, чтобы соответствовать экрану, и это может показаться странным. Но вы можете использовать .Fill, если вы уверены, что вам нравится этот вариант. Наиболее гладкой альтернативой остается использование .AspectFill и создание изображения для каждого размера экрана. Будь креативным! Удачи!

+0

Спасибо! SpriteKit сложно :( – user1569766

+0

Нет проблем! Я начал учиться быстро с помощью SpriteKit .. Последние несколько недель я пытался научиться UIKit, теперь это сложно. –

+0

Но как я могу разместить SKSpriteNode в том же положении на всем устройстве? – user1569766

Смежные вопросы