LIBGDX Fontes avanzado

De MediaWiki
Saltar a: navegación, buscar

UNIDADE 2: Fontes - avanzado

Introdución

Nota: Esta explicación está relacionada coa sección de Fontes.

Información na Wiki: https://github.com/libgdx/libgdx/wiki/Hiero


Como comentamos no punto relacionado, a clase BitMapFont ten un tamaño de 15 puntos e é Arial. Normalmente imos querer que o tamaño da fonte sexa máis grande para que cando a visualicemos non teña que escalar o seu tamaño e que aparezan dentes de serra.

Para xerar estas fontes (con varias efectos que podemos engadir optativos) imos utilizar unha ferramenta de nome Hiero.

Proceso de uso

Descarga da ferramenta Hiero

Podemos ou ben descargar o jar da ferramenta ou incoporar o código fonte a un novo proxecto e executala dende unha clase con main.

Descargamos o jar

Podemos descargar o jar da ferramenta e executalo dende aquí

Incoporando o código fonte a un proxecto

Información na wiki: https://github.com/libgdx/libgdx/wiki/Dependency-management-with-Gradle

Esta ferramenta se atopa nas GDX-Tools.

Uso da ferramenta Hiero

Unha vez instalada aparecerá a seguinte pantalla:

LIBGDX UD3 Fontes 5.jpg




A idea é crear un arquivo png con todas as letras que se necesiten para o noso xogo (lembrade poñer as letras acentuadas).

  • Debemos premer sobre a opción Glyph cache se queremos
  • Se non necesitamos todos os caracteres podemos borralos (ventá SampleText) e poñer os que queiramos.
  • Na parte da dereita temos unha ventá Effects na que podemos conseguir diferentes efectos, dende cambiar de cor, ata darlles unha aparencia 3D....
  • Cando teñamos os caracteres que necesitemos escolleremos a opción 'Save BMFont files' do menú File.


Exemplo de código

  • Unha vez feito o paso anterior debemos copiar os dous arquivos xerados (un bmp e un fnt) ó cartafol assets da versión Android (dentro de assets podemos organizar como queiramos os arquivos).


Deberedes de cambiar a clase co que inician as diferentes plataformas pola seguinte:

  • Deberedes copiar o gráfico dos peixes animados ó cartafol assets do proxecto Android.
  • Crear unha nova clase.

Código da clase FontesAvanzadas
Obxectivo: Amosar como usar unha fonte xerada con HIERO.

  1. import com.badlogic.gdx.ApplicationAdapter;
  2. import com.badlogic.gdx.Gdx;
  3. import com.badlogic.gdx.graphics.GL20;
  4. import com.badlogic.gdx.graphics.g2d.BitmapFont;
  5. import com.badlogic.gdx.graphics.g2d.SpriteBatch;
  6.  
  7. public class FontesAvanzadas extends ApplicationAdapter {
  8.         SpriteBatch batch;
  9.        
  10.         private BitmapFont bitMapFont;
  11.    
  12.         @Override
  13.         public void create () {
  14.                 batch = new SpriteBatch();
  15.  
  16.                 bitMapFont = new BitmapFont(Gdx.files.internal("fontes.fnt"), false);
  17.         }
  18.  
  19.         @Override
  20.         public void render() {
  21.                 Gdx.gl.glClearColor(1, 1, 1, 1);
  22.                 Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
  23.                 batch.begin();
  24.                
  25.                 bitMapFont.draw(batch, "EXEMPLO de código", 10, 100);
  26.                
  27.                 batch.end();
  28.                
  29.         }
  30.        
  31.         @Override
  32.         public void dispose() {
  33.                 batch.dispose();
  34.                 bitMapFont.dispose();
  35.         }
  36.  
  37.  
  38. }

Comentamos o código:

  • Liña 10: Creamos un obxecto da clase BitMapFont.
  • Liña 16: Instanciamos o obxecto pasándolle como parámetro o arquivo fnt xerado coa ferramenta. O segundo parámetro indica que debemos voltear as letras á hora de cargalas (facer flip). Isto pode ser necesario se a ferramenta que xera as letras as xera de forma volteada.
  • Liña 25: Debuxamos unha cadea utilizando o novo xogo de caracteres.



TAREFA OPTATIVA A FACER



Modificade o xogo para que cargue unha fonte xerada por vos utilizando a ferramenta Hiero.





-- Ángel D. Fernández González -- (2015).