Pregunta

¿Cómo puedo soportar (hacer un algoritmo) para libgdx para respaldar la resolución de pantalla múltiple?Hice que mi aplicación trabaje en HTC Tattoo usando si hay declaraciones con parámetros como:

if (Gdx.input.getX()==40) {

¿Qué es un buen algoritmo para hacer de este trabajo en pantallas más grandes? Probé esto, pero sin ningún resultado:

publis static int translatex() {
     float p = (float)Gdx.graphics.getHeight()*340;
     return (int) p*Gdx.input.getX();
}

340 es la base X (la resolución X en mi teléfono) utilizada por mí en el tatuaje HTC. Entonces ... ¿cómo puedo hacer una función para respaldar las pantallas grandes con valores absolutos?No quiero cambiar las declaraciones if-if-

¿Fue útil?

Solución

es bastante fácil.Básicamente, construye todo su programa para su resolución nativa, pero en todo lo relacionado con el posicionamiento y el tamaño de la textura tienen algo así:

private void resize()
{
    float x = Gdx.graphics.getWidth();
    float y = Gdx.graphics.getHeight();

    float changeX = x / assumeX; //being your screen size that you're developing with
    float changeY = y / assumeY;

    position = new Vector2(position.x * changeX, position.y * changeY);
    width = startWidth * changeX;
    height = startHeight * changeY;
    bounds = new Vector2 (position.x, (Gdx.graphics.getHeight() - position.y) - height);

}

Básicamente lo que está haciendo es tomar todos los objetos generados y ejecutarlo a través de algo que aumenta / disminuye dependiendo del cambio en los valores X / Y en su resolución.Cuanto más es de lo nativo, más grande será.Cuando la verificación de algo está en algún lugar o ponga algo en alguna parte, siempre códíelo como la resolución deseada, pero ejecutela a través de una función de cambio de tamaño antes de mostrarla o delejala interactuar con el resto de su programa.

Otros consejos

Consulte una solución más elegante en http://www.java-gaming.org / index.php? Topic= 25685.0 (también vea el comentario de Nate a esa solución).

Además, si usa scene2d, tenga en cuenta que actualmente (libgdx 0.9.6) stage.setViewport método debe tener esta funcionalidad, pero realmente no se comporta como uno esperaría.

Actualizar: setviewport fue arreglado, por lo que esto funciona igual de esperado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top