Domanda

Come si può aiutare (fare un algoritmo) per libgdx per supportare più la risoluzione dello schermo?Ho fatto la mia app funziona su HTC Tattoo con se statments con parametri come:

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

Che cosa è un buon algoritmo per fare questo lavoro su schermi più grandi?Ho provato questo, ma senza alcun risultato:

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

340 è la base x (x risoluzione sul mio telefono) utilizzato da me su HTC Tattoo.Così.....come posso fare una funzione per il supporto di grandi schermi con i valori assoluti.Non voglio cambiare il se-dichiarazioni.

È stato utile?

Soluzione

È piuttosto facile.In pratica costruisci il tuo intero programma per la tua risoluzione nativa, ma in tutto ciò che si occupa del posizionamento e del dimensionamento della consistenza ha qualcosa del genere:

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);

}
.

Fondamentalmente quello che stai facendo sta prendendo ogni oggetto generato e averlo eseguito attraverso qualcosa che aumenta / diminuisce a seconda della modifica dei valori X / Y nella risoluzione.Più è dal nativo, più grande sarà.Quando il controllo di qualcosa è da qualche parte o mettendo qualcosa da qualche parte, il codice sempre come la risoluzione desiderata, ma eseguilo attraverso una funzione di ridimensionata prima di visualizzarla o lasciarla interagire con il resto del tuo programma.

Altri suggerimenti

Vedere una soluzione più elegante a http://www.java-gaming.org/index.php?topic=25685.0 (vedi anche Nate commento alla soluzione).

Inoltre, se si utilizza scene2d, nota che attualmente (libgdx 0.9.6) stage.setViewport metodo dovrebbe avere questa funzionalità, ma in realtà non si comportano come ci si aspetterebbe.

Aggiornamento: setViewPort è stato risolto, quindi funziona come previsto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top