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:
- Añades todas las oraciones con el método “addSentence”.
- Llama al método “.start” para que comience a escribir. Cuando termina, emite un mensaje a la clase madre indicando que ya terminó.
- Llama el método “.erase” y cuando termina, emite otro mensaje de terminado.
Y asi se ve:


Deja una respuesta