Take it easy!

0 comentarios

Una de las cosas más aburridas a la hora de construir aplicaciones y juegos para iOS, es pasar del material original en formato photoshop (PSD) a imágenes que se puedan utilizar en las pantallas o texturas.

Ahora que Apple nos ha fastidiado con una nueva resolución (iPhone5), se hace todavía más palpable lo engorroso de esta tarea. Muchas veces nos vemos obligados a recortar nosotros mismos el material para generarlo de forma optimizada a lo que haremos a la hora de programar.

Es en este punto donde todo programador debe intentar pensar en la automatización de este tipo de cosas. Y por ello quiero compartir un pequeño truco (si se puede llamar así). El proceso a automatizar es la generación de la imagen de resolución normal a partir de la HD (ó @2x). Y es que con una pequeña shell y con ImageMagick instalado podemos reducir a la mitad el tiempo de la tediosa tarea de cortar las imágenes del PSD a PNG.

Simplemente genera la imagen @2x y deja que la shell haga el resto. Copia la shell en directorio donde estén las imágenes y ejecuta. Aquí tenéis el código:


#!/bin/sh
echo "Resizing retina..."
CURRENT_DIR=`pwd`
FILES=$CURRENT_DIR/*@2x.png
cd $CURRENT_DIR

for image in $FILES
do
        image_noretina="${image%@2x.png}.png"
        echo "Processing $image to $image_noretina"
        convert "$image" -resize 50% "$image_noretina"
done
exit 0

M.

Adaptando tus juegos a la resolución del iPhone5

0 comentarios

Ya tenemos aquí el nuevo y esperadísimo iPhone5, y aunque sus nuevas especificaciones no han sido ninguna sorpresa, para los desarrolladores de juegos y aplicaciones ya hay un motivo más de preocupación.

Se trata de la nueva pantalla, cuya resolución y aspect-ratio cambia respecto los antiguos iphone. En concreto, la pantalla pasa a ser de 1136x640píxeles (landscape) o lo que es lo mismo de 568x320puntos. Y claro, para aquellos a los que nos pilla en pleno desarrollo de juegos o aplicaciones, es una put... tener que estar contínuamente modificando este tipo de cosas.

Afortunadamente Apple nos lo intenta poner fácil, y nos asegura que nuestra app o juego se verá magníficamente bien en el nuevo iPhone5 si no tocamos nada, salvo por unas barras laterales de color negro. Pero claro, eso no queda muy bien, y toca investigar cómo migrar nuestros juegos a la nueva resolución. Es en este punto donde quería hacer algún comentario.

A priori es tan fácil como indicar en la IDE, Xcode4.5, un splash-screen (Launch Image, o el famoso Default.png) con una resolución de 1136x640. A partir de ese momento, nuestro terminal nos dará un tamaño de pantalla adaptado a la nueva resolución. Si no indicamos ese splash, todo seguirá como antes.

Pero claro, normalmente utilizamos herramientas y frameworks que nos ayudan al desarrollo y éstas tardan un poco en adaptarse. Por lo tanto, y aunque Apple lo ponga fácil, siempre toca adaptar nuestro código a las nuevas especificaciones. Algunas de las cosas típicas que deberemos modificar:

  1. Cocos2d: reposicionar elementos en función del tamaño de la pantalla.
  2. LevelHelper: desactivar la conversión de aspect-ratio y adaptar nuestras escenas

¡Ojo! La API de cambio de orientación del terminal ha sido rediseñada. Aquí tenéis algunas pautas: http://www.cocos2d-x.org/news/73

M.