2011-04-11 15 views
5

Se ha pedido la muerte de la cuestión de admitir pantallas múltiples, pero no he visto mucha discusión con respecto al desarrollo del juego (con hitboxes, comprobación de colisiones, etc.).¿Sugerencias para soporte de pantalla múltiple en 2D OpenGL?

Actualmente, mi juego se ejecuta en "modo de compatibilidad" produciendo efectos visuales muy pobres en dispositivos de gama superior debido a la ampliación de escala. Estoy buscando consejos y recomendaciones sobre lo que otros han hecho para que los gráficos de sus juegos se vean bien en todos los tamaños de pantalla.

¿Los desarrolladores incluyen 2 copias de cada recurso (densidades medias y altas) o son recursos de alta densidad simplemente reducidos para dispositivos de menor densidad?

¿Se utilizan píxeles independientes de la densidad en sus cálculos?

Respuesta

0

Muchos desarrolladores incluyen dos copias de los recursos o descargan copias de alta resolución en la primera ejecución. Si se descargan en la primera ejecución, entonces no están usando el administrador de recursos de Android para eso.

desarrolladores
2

Hacer incluyen 2 copias de cada recurso (densidades medio y alto) o son recursos de alta densidad simplemente escaladas hacia abajo para dispositivos de menor densidad?

Esta es una manera de manejar las cosas, he visto el siguiente hecho:

  1. Incluir mapas de bits para cada resolución que desea apoyar
  2. Incluir mapas de bits para la resolución más alta que desea apoyar, y reduzca la escala para otras resoluciones.
    • Si utiliza una hoja de mosaico (es decir, múltiples pequeños mapas de bits en un mapa de bits más grande) debe tener cuidado con el filtrado bi-lineal, es decir, la mezcla de los píxeles de borde con los elementos adyacentes. Si esto ocurre, obtendrá líneas/artefactos en sus activos. Hay una discusión aquí: http://developer.anscamobile.com/forum/2011/06/03/lines-between-my-tiles con respecto a este tema.
  3. Use gráficos vectoriales para la resolución más alta que desee.

Cuando se utiliza el método 2. o 3. esta es la forma lo manejo:

  • crear activos de segmentación 960 x 1600 tamaño de la pantalla.
  • 480 x 800 - escala por medio
  • 320 x 400 - escala por tercera

Esto me da el valor de densidad pantalla que necesito para cálculos futuros.

prefiero el método 3.

Actualmente estoy trabajando en un motor de juego 2D isométrica que carga .svg activos desde el disco y luego "los atrae a un mapa de bits" en la parte de "carga" de la etapa . Al hacer esto, obtengo los beneficios de un tamaño pequeño en el disco (.svg) y un rendimiento más rápido (mapas de bits) mientras ejecuto mi juego.

El flujo de trabajo es el siguiente:

  1. Analizar necesaria juego activo para un nivel
  2. de carga correspondiente .svg activo desde el disco
  3. Dibujar el contenido .svg en un mapa de bits
  4. Throw de distancia .svg cargado
  5. Repita para todos los activos
  6. Nivel de inicio

¿Se utilizan píxeles independientes de la densidad en sus cálculos?

Sí, lo uso de la siguiente manera:

sprite.x = new_x_position * screen_density; 
Cuestiones relacionadas