Permalink
Browse files

Cuadros de texto actualizados

-El texto se escribe letra por letra y solo se pasa al siguiente cuando
termina de escribir.
  • Loading branch information...
Luraguse committed Feb 19, 2013
1 parent 9bf2968 commit 05ae5862b6b4a0898231eba9f4ca52107b57efb1
@@ -3,40 +3,40 @@
<escena nombre="101">
<paso numero="1">
<accion actor="heroe" objetivo="ir_a" destino="1200" />
- <accion actor="heroe" objetivo="hablar" posicion="izq" destino="600" texto="Lorem ipsum dolor sit ametl" />
- <accion actor="amigo" objetivo="hablar" posicion="der" destino="600" texto="Lorem ipsum dolor sit ametl" />
+ <accion actor="heroe" objetivo="hablar" posicionTexto="izq" destino="600" texto="Lorem ipsum dolor sit ametl" />
+ <accion actor="amigo" objetivo="hablar" posicionTexto="der" destino="600" texto="blargsl" />
</paso>
<paso numero="2">
- <accion actor="amigo" objetivo="hablar" posicion="der" destino="600" texto="Lorem ipsum dolor sit ametl" />
+ <accion actor="amigo" objetivo="hablar" posicionTexto="der" destino="600" texto="Lorem ipsum dolor sit ametl" />
</paso>
<paso numero="3">
- <accion actor="heroe" objetivo="hablar" posicion="izq" destino="600" texto="Hallo Welt!" />
+ <accion actor="heroe" objetivo="hablar" posicionTexto="izq" destino="600" texto="Hallo Welt!" />
</paso>
<paso numero="4">
- <accion actor="heroe" objetivo="hablar" posicion="izq" destino="600" texto="ciao mondo!" />
+ <accion actor="heroe" objetivo="hablar" posicionTexto="izq" destino="600" texto="ciao mondo!" />
<accion actor="heroe" objetivo="teletransportarse" posicionX="200" posicionY="400" />
</paso>
<paso numero="5">
<accion actor="heroe" objetivo="ir_a" destino="1300" />
</paso>
<paso numero="5">
- <accion actor="amigo" objetivo="hablar" posicion="der" destino="600" texto="Amigo Hallo Welt5!" />
+ <accion actor="amigo" objetivo="hablar" posicionTexto="der" destino="600" texto="Amigo Hallo Welt5!" />
</paso>
</escena>
<escena nombre="102">
<paso numero="1">
- <accion actor="amigo" objetivo="hablar" posicion="izq" destino="600" texto="Amigo Hola Mundo2!" posicionX="1600" posicionY="400" />
+ <accion actor="amigo" objetivo="hablar" posicionTexto="izq" destino="600" texto="Amigo Hola Mundo2!" posicionX="1600" posicionY="400" />
</paso>
<paso numero="2">
- <accion actor="amigo" objetivo="hablar" posicion="izq" destino="600" texto="Amigo Hello world2!" />
+ <accion actor="amigo" objetivo="hablar" posicionTexto="izq" destino="600" texto="Amigo Hello world2!" />
</paso>
<paso numero="3">
- <accion actor="amigo" objetivo="hablar" posicion="izq" destino="600" texto="Amigo Hallo Welt2!" />
+ <accion actor="amigo" objetivo="hablar" posicionTexto="izq" destino="600" texto="Amigo Hallo Welt2!" />
</paso>
<paso numero="4">
- <accion actor="amigo" objetivo="hablar" posicion="izq" destino="600" texto="Amigo ciao mondo2!" />
+ <accion actor="amigo" objetivo="hablar" posicionTexto="izq" destino="600" texto="Amigo ciao mondo2!" />
</paso>
<paso numero="5">
<accion actor="amigo" objetivo="teletransportarse" posicionX="600" posicionY="800" />
@@ -48,17 +48,17 @@
<escena nombre="103">
<paso numero="1">
- <accion actor="heroe" objetivo="hablar" posicion="izq" destino="600" texto="Hola Mundo3!" />
+ <accion actor="heroe" objetivo="hablar" posicionTexto="izq" destino="600" texto="Hola Mundo3!" />
</paso>
<paso numero="2">
- <accion actor="heroe" objetivo="hablar" posicion="izq" destino="600" texto="Hello world3!" />
+ <accion actor="heroe" objetivo="hablar" posicionTexto="izq" destino="600" texto="Hello world3!" />
</paso>
<paso numero="3">
- <accion actor="heroe" objetivo="hablar" posicion="izq" destino="600" texto="Hallo Welt3!" />
+ <accion actor="heroe" objetivo="hablar" posicionTexto="izq" destino="600" texto="Hallo Welt3!" />
</paso>
<paso numero="4">
- <accion actor="heroe" objetivo="hablar" posicion="izq" destino="600" texto="ciao mondo3!" />
+ <accion actor="heroe" objetivo="hablar" posicionTexto="izq" destino="600" texto="ciao mondo3!" />
</paso>
</escena>
</escenas>
@@ -1,66 +1,66 @@
-package com.lumpundform.eventos;
-
-import com.badlogic.gdx.math.Vector2;
-import com.badlogic.gdx.utils.XmlReader.Element;
-
-public class Accion {
-
- private boolean terminado = false;
-
- private String nombreActor;
- private String objetivo;
- private String destino;
- private String texto;
- private String posicionTexto;
-
- private float posicionX = 0.0f;
- private float posicionY = 0.0f;
-
- public Accion(Element accion) {
- this.nombreActor = accion.get("actor");
- this.objetivo = accion.get("objetivo");
-
- if (accion.getAttributes().containsKey("destino"))
- this.destino = accion.get("destino");
- if (accion.getAttributes().containsKey("texto"))
- this.texto = accion.get("texto");
- if(accion.getAttributes().containsKey("posicion"))
- this.posicionTexto = accion.get("posicion");
- if (accion.getAttributes().containsKey("posicionX"))
- this.posicionX = Float.parseFloat(accion.get("posicionX"));
- if (accion.getAttributes().containsKey("posicionY"))
- this.posicionY = Float.parseFloat(accion.get("posicionY"));
- }
-
- public String getNombreActor() {
- return nombreActor;
- }
-
- public String getObjetivo() {
- return objetivo;
- }
-
- public String getTexto() {
- return texto;
- }
-
- public float getDestino() {
- return Float.parseFloat(destino);
- }
-
- public Vector2 getPosicion() {
- return new Vector2(posicionX, posicionY);
- }
-
- public boolean getTerminado() {
- return terminado;
- }
-
- public String getPosicionTexto() {
- return posicionTexto;
- }
-
- public void terminar() {
- terminado = true;
- }
+package com.lumpundform.eventos;
+
+import com.badlogic.gdx.math.Vector2;
+import com.badlogic.gdx.utils.XmlReader.Element;
+
+public class Accion {
+
+ private boolean terminado = false;
+
+ private String nombreActor;
+ private String objetivo;
+ private String destino;
+ private String texto;
+ private String posicionTexto;
+
+ private float posicionX = 0.0f;
+ private float posicionY = 0.0f;
+
+ public Accion(Element accion) {
+ this.nombreActor = accion.get("actor");
+ this.objetivo = accion.get("objetivo");
+
+ if (accion.getAttributes().containsKey("destino"))
+ this.destino = accion.get("destino");
+ if (accion.getAttributes().containsKey("texto"))
+ this.texto = accion.get("texto");
+ if(accion.getAttributes().containsKey("posicionTexto"))
+ this.posicionTexto = accion.get("posicionTexto");
+ if (accion.getAttributes().containsKey("posicionX"))
+ this.posicionX = Float.parseFloat(accion.get("posicionX"));
+ if (accion.getAttributes().containsKey("posicionY"))
+ this.posicionY = Float.parseFloat(accion.get("posicionY"));
+ }
+
+ public String getNombreActor() {
+ return nombreActor;
+ }
+
+ public String getObjetivo() {
+ return objetivo;
+ }
+
+ public String getTexto() {
+ return texto;
+ }
+
+ public float getDestino() {
+ return Float.parseFloat(destino);
+ }
+
+ public Vector2 getPosicion() {
+ return new Vector2(posicionX, posicionY);
+ }
+
+ public boolean getTerminado() {
+ return terminado;
+ }
+
+ public String getPosicionTexto() {
+ return posicionTexto;
+ }
+
+ public void terminar() {
+ terminado = true;
+ }
}
@@ -10,7 +10,6 @@
import com.lumpundform.actores.Personaje;
import com.lumpundform.escenario.EscenarioBase;
import com.lumpundform.interfaz.CuadroTexto;
-import com.lumpundform.utilerias.U;
public class Escena {
@@ -21,7 +20,7 @@
private boolean terminado = false;
private EscenarioBase escenario;
-
+
// Cuadros de texto
Map<String, CuadroTexto> cuadrosTexto = new HashMap<String, CuadroTexto>();
@@ -92,10 +91,11 @@ private boolean accionesTerminadas(Paso paso) {
private void hablar(Accion accion, Personaje personaje) {
if (!accion.getTerminado()) {
if (!cuadrosTexto.containsKey(personaje.getName())) {
- U.l("dir", accion.getPosicionTexto());
CuadroTexto tempCT = new CuadroTexto(accion.getPosicionTexto());
tempCT.setTexto(accion.getTexto());
cuadrosTexto.put(personaje.getName(), tempCT);
+ } else {
+ cuadrosTexto.get(personaje.getName()).setTexto(accion.getTexto());
}
}
dibujarTexto(personaje.getName());
@@ -128,8 +128,12 @@ public boolean getTerminada() {
public void continuarConversacion() {
Paso pasoActual = getPasoActual();
- if (pasoActual != null && pasoActual.tieneAccionHablar())
- pasoActual.terminarAccionHablar();
+ if (pasoActual != null && pasoActual.tieneAccionHablar()) {
+ if (accionHablarTermino()) {
+ siguienteCuadroTexto();
+ pasoActual.terminarAccionHablar();
+ }
+ }
}
private Paso getPasoActual() {
@@ -138,7 +142,22 @@ private Paso getPasoActual() {
return null;
}
+ private boolean accionHablarTermino() {
+ for (CuadroTexto cuadroTexto : cuadrosTexto.values()) {
+ if (!cuadroTexto.terminado())
+ return false;
+ }
+ return true;
+ }
+
+ private void siguienteCuadroTexto() {
+ for (CuadroTexto cuadroTexto : cuadrosTexto.values()) {
+ cuadroTexto.continuar();
+ }
+ }
+
private void dibujarTexto(String nombrePersonaje) {
- cuadrosTexto.get(nombrePersonaje).draw();
+ CuadroTexto cuadroTexto = cuadrosTexto.get(nombrePersonaje);
+ cuadroTexto.draw();
}
}
@@ -6,7 +6,6 @@
import com.badlogic.gdx.graphics.g2d.NinePatch;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.lumpundform.utilerias.Fuentes;
-import com.lumpundform.utilerias.U;
public class CuadroTexto {
private NinePatch np = new NinePatch(new Texture(Gdx.files.internal("texturas/ct.png")), 3,
@@ -20,7 +19,7 @@
public Boolean dibujar = true;
- public float posicionX;
+ private float posicionX;
private float posicionY = 400.0f;
private float anchoCuadro = 300.0f;
private float altoCuadro = 60.0f;
@@ -29,14 +28,13 @@
private float posicionTextoX;
private float posicionRetratoX;
- public boolean terminado = false;
- public boolean continuar = false;
+ private boolean terminado = false;
+ private boolean continuar = false;
-
- public int index = 0;
+ private int index = 0;
- public String texto;
- public String newstr = "";
+ private String texto;
+ private String textoNuevo = "";
public CuadroTexto(String posicion) {
@@ -79,14 +77,36 @@ public void setPaddingX(float paddingX) {
public void setPaddingY(float paddingY) {
this.paddingY = paddingY;
}
+
+ private String iterarTexto() {
+ if (index < texto.length() && !terminado) {
+ textoNuevo += texto.substring(index, ++index);
+ } else if (!terminado && index >= texto.length() && !continuar) {
+ terminado = true;
+ index = 0;
+ } else if (terminado && index == 0 && continuar) {
+ textoNuevo = "";
+ continuar = false;
+ terminado = false;
+ }
+ return textoNuevo;
+ }
public void draw() {
batch.begin();
np.draw(batch, posicionX, posicionY, anchoCuadro, altoCuadro);
bmf.setColor(1.0f, 1.0f, 1.0f, 1.0f);
bmf.setScale(0.50f);
- bmf.drawWrapped(batch, texto, posicionTextoX, (posicionY + altoCuadro - paddingY), (anchoCuadro - (paddingX * 2) - retrato.getWidth()));
+ bmf.drawWrapped(batch, iterarTexto(), posicionTextoX, (posicionY + altoCuadro - paddingY), (anchoCuadro - (paddingX * 2) - retrato.getWidth()));
batch.draw(retrato, posicionRetratoX, (posicionY + (altoCuadro - retrato.getHeight() - paddingY)), retrato.getWidth(), retrato.getHeight());
batch.end();
}
+
+ public boolean terminado() {
+ return terminado;
+ }
+
+ public void continuar() {
+ continuar = true;
+ }
}

0 comments on commit 05ae586

Please sign in to comment.