Ho riscontrato un problema durante il tentativo di inserire un sistema di testo/dialogo nel mio progetto di gioco. Quando creo un font e chiamo il metodo di disegno su di esso passando la fotocamera spriteBatch aggiornata, ogni pixel del font ha la stessa dimensione di uno sprite.LibGDX sprite batch font rendering di scala errato
ottengo il seguente render:
Che cosa si può vedere dalla foto è la parte superiore della "h" di "ciao" con ogni pixel di grandi dimensioni. La stessa telecamera viene utilizzata per rendere le tessere/sprite.
L'effetto che voglio ottenere è simile a questo:
Ecco il codice:
// 15 * 12 tile size
camera = new OrthographicCamera(Const.VIEWPORT_WIDTH, Const.VIEWPORT_HEIGHT);
BitmapFont font = new BitmapFont(Gdx.files.internal("data/fonts/myfont.fnt"));
// ....
// p => player position
camera.position.x = p.getX();
camera.position.y = p.getY();
camera.update();
batch.setProjectionMatrix(camera.combined);
batch.begin();
font.draw(batch, "hello", p.getX(), p.getY());
batch.end();
Ho provato con font.setScale()
senza successo.
Qualcuno sa come ottenere ciò?
grazie per la sua risposta, ma voglio coordinare il testo per essere lo stesso sprite rendere fotocamera. Devo aggiornare manualmente il coord? –
Sì, devi calcolarlo manualmente, ho modificato la mia risposta per mostrarti come. – Lestat
Funziona perfettamente, grazie mille per questa bella risposta. –