Viewport (Letterbox) para Starling

Viewport (Letterbox) para Starling

Hace rato publiqué en github una clase simple para ayudar a definir el Viewport en proyectos con Starling.

Suponiendo que uno ha hecho un juego usando la resolución retina del iPhone 4S en portrait (640 x 960) como base, y se quiere que se pueda ver en otros dispositivos con el mismo asset de gráficas pero escalándolo en Letterbox (imagen de arriba); se debe de utilizar el tercer parámetro del constructor de Starling, que es una simple instancia de la clase Rectangle.

Para acortar el tiempo y líneas la clase se usa así:

var viewPort:ViewPort = new ViewPort(stage, ViewPort.IPHONE4_RETINA_PORTRAIT);
var star:Starling = new Starling(Game, stage, viewPort);
star.stage.stageWidth = viewPort.starlingStageWidth;
star.stage.stageHeight = viewPort.starlingStageHeight;
star.start();

En el primer parámetro va nuestro stage, el segundo es una instancia de la clase Resolution. Con la clase incluí algunas propiedades estáticas con algunas resoluciones comunes (iPhone4, iPhone5, iPad y iPad retina).

Después, al momento de instanciar Starling, se pasa como tercer parámetro. Luego se le asigna al stage interno de Starling el ancho y alto y listo.

Si se quiere utilizar una resolución personalizada (como el 720p para Galaxy SIII), se puede hacer así:

var viewPort:ViewPort = new ViewPort(stage, new Resolution(1280,720));

#happyCoding