Bueno, como consejo básico, en PC diría "no asumas que tu usuario quiere ejecutar la pantalla completa". Y en modo ventana, elija su relación ideal y simplemente utilícela directamente.
Los usuarios creo que generalmente aceptan barras negras cuando se les presenta contenido de pantalla completa. Entonces las estrategias 3 y 4 son aceptables, si no ideales. Tienen la ventaja de que siempre sabes cuánto contenido estás representando: es decir, no hay errores furtivos que solo ocurren cuando se ejecuta en pantalla panorámica.
Si está tratando de adaptarse y detecta la proporción de usuarios a través de la resolución de pantalla y muestra la mayor cantidad de contenido posible, debe tener en cuenta el contenido de alta y baja prioridad de manera diferente. El contenido de alta prioridad es algo que el usuario tiene que ver absolutamente en la pantalla, si está fuera de la pantalla el juego falla. Así que se trata de elementos como HUD y UI, y el avatar del jugador y cualquier cosa con la que estén interactuando. El contenido de baja prioridad es algo que si está en pantalla es bueno, pero si está fuera de la pantalla no es gran cosa. Por ejemplo: gráficos de fondo y cosas que están razonablemente lejos del avatar.
Suponiendo que tiene una interfaz de usuario / HUD que se está superponiendo en la parte superior de un mundo 2D 'físico', entonces esto es lo suficientemente sencillo. Los elementos de baja prioridad son fáciles, solo asegúrate de que la ventana gráfica 4: 3 esté centrada en las cosas interesantes, luego dibuja tantas cosas de baja prioridad como puedas a la izquierda o la derecha. Las cosas de alta prioridad en el mundo 2D (por ejemplo, tu personaje, los enemigos con los que tu personaje está luchando directamente) siempre deben mantenerse en la ventana gráfica 4: 3. Es decir, su código de juego no amplía la cámara para aprovechar el espacio adicional de la pantalla, porque entonces tendrá un código de juego que actúa de manera diferente en pantalla panorámica en lugar de no. Haga que el código del juego suponga que el mundo se está representando en 4: 3, y solo deje que su código de representación tenga en cuenta que en realidad hay más que eso visible.
El diseño de los elementos UI / HUD se puede abordar de dos maneras:
- Posicionamiento dinámico: especifique todos sus elementos en relación con los bordes de la pantalla (es decir, no todos en relación con 0,0). Dependiendo de su relación de aspecto, los elementos estarán más cerca o más lejos del centro de la pantalla. Pros: Le permite enganchar cosas a las esquinas y hacer que "funcionen". Contras: es difícil hacer que el diseño funcione bien en el centro, y el riesgo de que los elementos se superpongan
- Posicionamiento estático conservador: diseñe todos sus elementos en 4: 3 y simplemente desfaselos cuando se ejecute en pantalla panorámica. Pros: lógica / coordenadas de diseño simples y sin ambigüedades. Contras: deja un espacio visual muerto a la izquierda y a la derecha de los controles de la interfaz de usuario, donde verá el mundo 2D en el fondo pero no la interfaz de usuario.