Incluso después de leer varios posts en el marco vs vista todavía no puedo conseguir este trabajo. Puedo abrir Xcode (7.3), crear un nuevo proyecto de juego para IOS. En la escena por defecto del archivo, justo después de addChild, yo agregue el código siguiente:

    print(self.view!.bounds.width)
    print(self.view!.bounds.height)

    print(self.frame.size.width)
    print(self.frame.size.height)

    print(UIScreen.mainScreen().bounds.size.width)
    print(UIScreen.mainScreen().bounds.size.height)

Llego siguientes resultados cuando se ejecuta para el iPhone 6s:

 667.0
 375.0
 1024.0
 768.0
 667.0
 375.0

Puedo adivinar que los dos primeros números de la Retina tamaño de Pixel en x2. Estoy tratando de entender por qué marco de informes de tamaño 1024×768 ?

Entonces puedo agregar el siguiente código para cambiar el tamaño de un simple fondo de la imagen para llenar la pantalla:

    self.anchorPoint = CGPointMake(0.5,0.5)

    let theTexture = SKTexture(imageNamed: "intro_screen_phone")
    let theSizeFromBounds = CGSizeMake(self.view!.bounds.width, self.view!.bounds.height)
    let theImage = SKSpriteNode(texture: theTexture, color: SKColor.clearColor(), size: theSizeFromBounds)

Puedo obtener una imagen más pequeña que el tamaño de la pantalla. La imagen se muestra aún más si puedo elegir el modo de paisaje.

Traté de multiplicar los límites de anchura/altura con dos, con la esperanza de obtener tamaño real de pantalla, pero luego la imagen se vuelve demasiado grande. También traté de tamaño de fotograma que hace de la imagen un poco más grande que la pantalla.

Principal motivo de mi confusión, además de la falta de conocimiento es el hecho de que he visto este mismo ejemplo, en una lección de trabajo perfectamente. O me estoy perdiendo algo obvio o ?

OriginalEl autor Charles | 2016-03-31

1 Comentario

  1. 8

    El marco está dado como 1024×768 porque se define en puntos, no en píxeles.

    Si quieres que tu escena a ser el mismo tamaño que la pantalla, antes de que la escena se presenta en su GameViewController, antes de:

    skView.presentScene(scene)

    usar este:

    scene.size = self.view.frame.size

    que hará de la escena el tamaño exacto de la pantalla.

    A continuación, usted puede fácilmente hacer un relleno de imagen de la escena así:

        func addBackground() {
    
            let bgTexture = SKTexture(imageNamed: "NAME")
    
            let bgSprite = SKSpriteNode(texture: bgTexture, color: SKColor.clearColor(), size: scene.size)
            bgSprite.anchorPoint = CGPoint(x: 0, y: 0)
            bgSprite.position = self.frame.origin
            self.addChild(bgSprite)
        }

    También, puede que desee leer sobre la diferencia entre una vista de los límites y el marco.

    OriginalEl autor Wes

Dejar respuesta

Please enter your comment!
Please enter your name here