sprite-kit coordinates coordinate-systems

sprite kit - Las coordenadas de SpriteKit difieren entre iPad y iPhone



sprite-kit coordinates (1)

Esto se debe a que el tamaño de la pantalla en el iPhone es incorrecto; eche un vistazo al archivo sks de la escena, debería ver que el tamaño de la escena está establecido en (1024, 768) de manera predeterminada. Para corregir esto, necesita establecer el tamaño de la escena y el modo de escala:

scene.size = skView.bounds.size scene.scaleMode = .AspectFill

Deberías hacer esto es didMoveToView o cuando didMoveToView una instancia de la escena.

Tengo una escena de SpriteKit muy simple que no se comporta como esperaba. Es una aplicación universal y el código que estoy usando para dibujar un solo cuadrado rojo en la escena es el siguiente:

let redSquare = SKSpriteNode(color: UIColor .redColor(), size: CGSizeMake(100.0, 100.0)) redSquare.anchorPoint = CGPointMake(0.0, 0.0) redSquare.position = CGPointMake(1.0, 1.0) addChild(redSquare)

Este código está en el método GameScene didMoveToView de la aplicación predeterminada que crea xCode para usted cuando selecciona el juego SpriteKit.

Cuando se ejecuta en el iPad, se comporta como se esperaba sacando el cuadrado rojo de 1 punto de la parte inferior y el borde izquierdo de la pantalla.

Cuando lo ejecuto en el simulador iPHone 6 Plus, sin embargo, aparece así:

La nave espacial aparece en el punto de contacto correcto en ambos dispositivos, sin embargo, una impresión () de la ubicación táctil muestra (1,1) en el iPad y (1,100) en el iPhone. Esto indica que las coordenadas de (x, 0) - (x, 99) están en la parte inferior de la pantalla del iPhone, lo cual no tiene ningún sentido para mí.

¿Por qué los dos dispositivos no lo muestran de la misma manera? El comportamiento es el mismo tanto en los simuladores como en los dispositivos reales.

¡Gracias! Scooter