Please login or register.

Login with username, password and session length
Advanced search  

News:

IRC channel - server: waelisch.de  channel: #wme (read more)

Author Topic: El texto de Hablar  (Read 2920 times)

0 Members and 1 Guest are viewing this topic.

DonZerg

  • Lurker
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 5
    • View Profile
El texto de Hablar
« on: August 07, 2010, 03:30:33 AM »

Hola Gente del foro, soy nuevo con Wintermute tengo la siguiente duda.

Normalmente los personajes cuando hablan se carga el texto sobre ellos, ¿Como puedo hacer para que ese texto se cargue en otro lado?
me refiero no sobre ellos, quizás en un banner abajo.

De antemano gracias.
Logged

HelLRaiseR

  • I don't want to make a Monkey Island clone :(
  • Moderator
  • Frequent poster
  • *****
  • Karma: 4
  • Offline Offline
  • Posts: 270
    • View Profile
    • Adventure Box Studios
Re: El texto de Hablar
« Reply #1 on: August 08, 2010, 11:13:25 PM »

Es mucho mas simple de lo que imaginas, ahora supongo que utilizas el método actor.Talk(); pues bien, no lo uses  ;D En vez de usar actor.Talk cuando quieras decir algo, puedes tener tu propia función u objeto con sus metodos y con los parametros que te apetezca, por ejemplo x,y para la posición del texto, color, imagen del actor que habla, etc.

Mira estos enlaces:

http://www.adventureboxstudios.com/preview/scr02.jpg
http://www.adventureboxstudios.com/preview/scr01.jpg

Si te fijas no usamos el metodo Talk, sino que tenemos nuestras propia ventana, a la que le pasamos el nombre del actor y automaticamente sale su imagen, se redimensiona en funcion de la cantidad de texto, etc. Mucho mas controlable y mucho mas vistoso.
Logged
Regards,

    Fernando

DonZerg

  • Lurker
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 5
    • View Profile
Re: El texto de Hablar
« Reply #2 on: August 18, 2010, 03:54:36 AM »

Hola HelLRaiseR, muchas gracias, eso es lo que estoy buscando, pero aun asi no comprendo como se podria hacer, ¿es posible que me pongas un script? si no es mucha la molestia.

De antemano gracias.
Logged

HelLRaiseR

  • I don't want to make a Monkey Island clone :(
  • Moderator
  • Frequent poster
  • *****
  • Karma: 4
  • Offline Offline
  • Posts: 270
    • View Profile
    • Adventure Box Studios
Re: El texto de Hablar
« Reply #3 on: August 27, 2010, 02:13:36 AM »

A ver, intento explicarlo, no es tan simple como poner un script, necesitas hacer una ventana, sus correspondientes scripts, graficos, etc. Te comento como esta hecho en nuestro juego

En primer lugar haces una ventana, en esa ventana tienes que poner una etiqueta de texto para los elementos que quieras sacar, en nuestro caso hay tres, el nombre del actor que habla, el texto que dice y la imagen, que esta montada tambien como una etiqueta de texto, aunque lo podrías hacer tambien con una entity.

Además, en esa ventana, tambien ponemos un textarea, al text area le puedes dar un grafico en la propiedad TiledImage que es la que usa para montar la caja.

A estos objetos de la ventana los he llamado asi en el codigo de ejemplo:

ImgActor: etiqueta de texto para la imagen del actor.
TxtArea: TextArea para el recuadro.
Txt: Texto del dialogo.
TxtName: Texto con el nombre del actor.

Luego creamos un script y en el un metodo del tipo Habla(texto,actor,duracion)
Code: [Select]
method Habla(Texto, Actor, Duracion)
{

var ImgActor = this.GetControl("Actor");
var TxtArea = this.GetControl("TextArea");
var Txt = this.GetControl("Text");
var TxtName = this.GetControl("ActorName");
var Time=1;

switch (Actor)
{
  case "actor1":
  ImgActor.SetImage("imagen_actor1.jpg");
  break;
  case "actor2":
  ImgActor.SetImage("imagen_actor2.jpg");
  break;
  case "actor3":
  ImgActor.SetImage("imagen_actor3.jpg");
  break;
 default:
  ImgActor.SetImage("imagen_por_defecto.jpg");
  break;
}

TxtName.Text = Actor ;
Txt.Text = Text;
Txt.HeightToFit();

if (Txt.Height > 50)
  {
  TxtArea.Height = Txt.Height + 80;
  }
  else
  {
  TxtArea.Height = 160;
  }
this.Visible = true;
Game.Interactive = true;
Sleep(Duracion);
this.Visible = false;

}
Como ves lo que se hace en este script es poner la imagen en funcion del actor, poner su nombre y el texto que dice, ademas cambiamos el tamaño del area de texto, que es el recuadro en funcion del tamaño del texto, eso hace que la ventana crezca en funcion de lo que escribes.

Luego la llamas tal que asi
Code: [Select]
Ventana.Hablar("Lo que quieres decir", "Quein lo dice", tiempo);

Previamente has tenido que cargar la ventana, en el game.script, por ejemplo, porque si te fijas, cuando tu dices Ventana.Habla() la ventana ya esta cargada y lo que hace es rellenar los textos, poner las imagenes, mostrarse, esperar y ocultarse. Este seria el código del game.script

Code: [Select]
Ventana = Game.LoadWindow("ventana_de_dialogo.window");
Ventana.Visible = false;

Esta sería la base, aunque luego la cosa se complica un poco mas, ya que por ejemplo, nosotros añadimos soporte para interrumpir el dialogo, el tiempo de espera es relativo en funciónd e la velocidad de los subtitulos que el jugador indica en la pantalla de opciones, el texto que se muestra es recogido del fichero de strings para la traducción, el audio se busca tambien y se reproduce en función de las opciones, etc. pero la base la tienes aquí.

SI tienes dudas pregunta.
Logged
Regards,

    Fernando

DonZerg

  • Lurker
  • *
  • Karma: 0
  • Offline Offline
  • Posts: 5
    • View Profile
Re: El texto de Hablar
« Reply #4 on: August 28, 2010, 05:36:44 AM »

HelLRaiseR te pasaste de amable, pero me salieron unos errores,

1.- el script con el metodo del tipo Habla(texto,actor,duracion) ¿eso va en el script de la ventana?
2.- el metodo dice "Habla", pero cuando lo llama dice "Ventana.Hablar()" ¿se borra la "r" final?
3.- Cuando cargó la ventana en el game.script, me sale un error en el Debugging que dice

Compiling script 'scripts\game.script'...
Error@line 37: Variable 'Ventana' is referenced but not defined

¿sera que hay que ponerle "var" o "global" antes de Ventana?

disculpa las molestia, pero te agradezco que me ayudes.



Logged

HelLRaiseR

  • I don't want to make a Monkey Island clone :(
  • Moderator
  • Frequent poster
  • *****
  • Karma: 4
  • Offline Offline
  • Posts: 270
    • View Profile
    • Adventure Box Studios
Re: El texto de Hablar
« Reply #5 on: August 30, 2010, 08:59:25 PM »

Por partes:

1. Efectivamente, eso iria en el script de la ventana, le añadiria a la ventana el metodo Habla()
2. Si, o le borras la r o se la añades al crear el metodo.
3. Si, faltaría la declaración, añade una linea tal que global Ventana;

Ten en cuenta que es una explicación, no un código funcional, por lo que puede fallar, la idea es que entiendas como funciona, luego lo puedes usar para esto, para las opciones, inventarios, etc.
Logged
Regards,

    Fernando
 

Page created in 0.307 seconds with 23 queries.