Typewriter.java

En mi casa la llamaban Maquinillas pero descubrí que ese termino es totalmente incorrecto.

Para cada fin de nivel, esta máquina de escribir se usa para el resumen del destacado. Comencé creando una enumeración de estado y su variable:

public enum STATE {TYPING, ERASING, IDLE}
public STATE state;

Para el cursor necesito tres variables:

private static final float CURSOR_BLINK_RATE = 0.08f;
private boolean cursor;
private float cursorTimer;

Y para que parpadee, añado esto en el método de “act(float delta)”.

@Override
public void act(float delta) {

    if ((cursorTimer += delta) > CURSOR_BLINK_RATE) {
        cursorTimer = 0;
        cursor = !cursor;
    }
}

Cuando la variable “boolean cursor” es cierta, añado el cursor (“_”) a la oración actual.

Para escribir letra por letra, utilizo la clase “StringBuilder” para crear las oraciones y “GlyphLayout” para medir tamaños de letras.

for (int i = 0; i < sentences.size; i++) {

    stringBuilder.clear();
    stringBuilder.append(sentences.get(i).text, 0, sentences.get(i).position);

    glyphLayout.setText(font, sentences.get(i).text);

    if (sentences.get(i).align == Align.left) xFlux = camera.position.x + getX() + hMargin; 
    else xFlux = camera.position.x - (glyphLayout.width / 2);
}

Para completar un escrito, se necesitan tres etapas:

  1. Añades todas las oraciones con el método “addSentence”.
  2. Llama al método “.start” para que comience a escribir. Cuando termina, emite un mensaje a la clase madre indicando que ya terminó.
  3. Llama el método “.erase” y cuando termina, emite otro mensaje de terminado.

Y asi se ve:

Únete a otros 35 suscriptores

Deja una respuesta

Anuncios


Anuncios