2014-08-27 26 views
6

Robię pierwszą scenę z SpriteKit w szybkim tempie. Stworzyłem obraz tła dla 4-calowego iPhone'a o wymiarach 640x1136. Umieściłem obrazek jako ikonkę na środku ekranu, ale obraz nie jest pełny, brakuje krawędzi.Swift & SpriteKit: Pełny ekran obrazu

Następnie próbowałem zmienić rozmiar obrazu w aplikacji. Kiedy zrobiłem image.size.height = self.size.height, wysokość została poprawnie przeskalowana wzdłuż całego ekranu iPhone'a. Ale kiedy zrobiłem to samo z szerokością image.size.width = self.size.width, obraz został bardzo rozciągnięty.

Wydrukowałem wymiary self.size i okazało się, że wymiary dla mojego iPhone'a 5s to 1024, 768. To jest kompletny nonsens, ponieważ ekran nie może być szerszy niż jego wysokość na iPhonie. Aplikacja jest uniwersalna, ale jedyną orientacją jest portret.

Edit: Jest to kod używam umieścić obraz na ekranie

class GameScene: SKScene 
{ 
    let menuImage = SKSpriteNode(imageNamed: "menuImage") 

    override func didMoveToView(view: SKView) 
    { 
     /* Setup your scene here */ 

     menuImage.anchorPoint = CGPointMake(0.5, 0.5) 
     menuImage.size.height = self.size.height 
     menuImage.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame)) 

     self.addChild(menuImage) 
    } 
+0

Czy jesteś pewien, że symulator nie jest iPhone 5s? –

+0

Testuję to zarówno na moim iPhonie 5s, jak i na symulatorze iPhone'a 5s i robią to samo. – Sam

+0

Dlaczego stworzyłeś obraz 640 * 1136, jeśli ma być 768 * 1024? –

Odpowiedz

8

Trzeba dodać scene.size = skView.bounds.size tuż przed skView.presentScene(scene) w pliku gameViewController

+1

Dziękuję. Rozwiązało to problem z nieprawidłową zmianą rozmiaru. – Sam