CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 28 Sep 2020 20:24

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 6 mensajes ] 
Autor Mensaje
 Asunto: colores en AGE
NotaPublicado: 13 May 2009 09:46 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
He visto que en las aventuras de AGE, el texto sale coloreado según sea su procedencia, por ejemplo el comando tiene uno, las descripciones otros, etc.

Ahora yo lo que querría sería cambiar el color de los mensajes generados por el temporizador, aquellos que marcan el transcurso del tiempo dentro de la aventura y que muestran eventos que no siempre son causa directa de las acciones del jugador.

¿Cómo podría hacer esto?


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 13 May 2009 10:05 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5312
Ubicación: Coruña
Bueno, por defecto el AGE tiene una serie de "tipos de texto" predefinidos, que en el cliente colorido del AGE se muestran en los colores que configures en la aventura. Estos colores corresponden a cosas como descripción, acción, etc. En los writes que haces tú a mano, puedes hacerlos "incoloros", o puedes usar cosas como writeDescription o writeAction para darles uno de esos colores.

Tal vez te valga utilizar uno de estos tipos de texto predefinidos para tus mensajes del temporizador, si hay alguno que no vayas a usar para otra cosa. Échales un vistazo, están en la ficha de configuración visual del mundo en el PUCK.

La ventaja de usar los tipos predefinidos es que son una solución más "genérica" porque un cliente podría configurarlos. Es decir, tú por ejemplo puedes definir el color de acciones como rojo y de historia como azul; pero igual un daltónico quiere sobreescribir esas opciones en su cliente y que se usen otros colores. En cambio, si dices directamente "voy a escribir en rojo", no se podría hacer esto.

Si quieres hacerlo directamente, escribiendo en un color en el cliente del AGE, puedes hacerlo así:

- Crea un fichero bsh con este código:

Código:
void writeColored ( Player aPlayer , String message , String color )
{
  InputOutputClient client = aPlayer.getIO();
   if ( client instanceof ColoredSwingClient )
   {
      client.write("%" + color + "%" + message + client.getColorCode("reset");
   }
  else
  {
     client.write(message);
  }
}


(ojo, no puedo probar el código porque estoy en el curro, puede que haya algún bug... aunque yo creo que no).

- Inclúyelo (con source: source("color.bsh")) en los objetos donde quieras escribir mensajes en el color que quieras.

- Para escribir un mensaje de un color, pondrías por ejemplo:

writeColored ( jugador , "mensaje" , "FF0000" );

El tercer parámetro es el código hexadecimal de color en el formato que se usaba clásicamente en HTML (sin poner # delante, sólo el código en sí). Como has hecho algunas webs me imagino que lo conoces; pero si no pregunta.

Nótese que no es jugador.writeColored ( ... ) sino writeColored ( jugador ... ), porque es un método que estás definiendo en el contexto del beanshell.

_________________
Actúa siempre de tal modo que las decisiones de tu voluntad pudiesen servir como preceptos de una legislación universal (E. Kant)


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 13 May 2009 10:17 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
Al-Khwarizmi escribió:
Es decir, tú por ejemplo puedes definir el color de acciones como rojo y de historia como azul; pero igual un daltónico quiere sobreescribir esas opciones en su cliente y que se usen otros colores.


Esto me ha recordado algo que alguna vez me ha pasado por la cabeza.

Recuerdo que en mi primera aventura hay un puzzle basado en "colores", y recuerdo que a pesar de que los colores se imprimen como tales en el monitor, los incluí en las descripciones para tener la seguridad de que podía ser jugada por los invidentes.

¿Cómo está el tema de accesibilidad en AGE ?


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 13 May 2009 10:26 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5312
Ubicación: Coruña
jenesis escribió:
Esto me ha recordado algo que alguna vez me ha pasado por la cabeza.

Recuerdo que en mi primera aventura hay un puzzle basado en "colores", y recuerdo que a pesar de que los colores se imprimen como tales en el monitor, los incluí en las descripciones para tener la seguridad de que podía ser jugada por los invidentes.

¿Cómo está el tema de accesibilidad en AGE ?


Pues el cliente de AGE está hecho en Java con componentes Swing, y en teoría los componentes de texto de Swing son accesibles. Vamos, yo he leído por ahí en documentación que lo son. Lo que pasa es que, como nunca ningún ciego ha probado mis aventuras (o, al menos, ninguno me lo ha dicho), no puedo tener la seguridad de que realmente la cosa funcione. Pero supongo que, o bien ya funciona, o si no funciona podría hacer que funcionase fácilmente, ya que como digo la base para que sea accesible debería estar en el propio Swing.

_________________
Actúa siempre de tal modo que las decisiones de tu voluntad pudiesen servir como preceptos de una legislación universal (E. Kant)


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 13 May 2009 10:42 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
Al-Khwarizmi escribió:
Pero supongo que, o bien ya funciona, o si no funciona podría hacer que funcionase fácilmente, ya que como digo la base para que sea accesible debería estar en el propio Swing.


Genial!!

Volviendo a lo de los colores, está muy bien lo de los estilos predeterminados, pero la pena es que por ejemplo "acción" sólo funciona con las situaciones incluídas desde el IDE, sin embargo "descripción" funciona con todo lo que sea respuesta del verbo "mirar".

Yo necesitaría un "acción", que funcionara también desde el código, sea dentro de PUCK o sea externo.
¿Costaría mucho hacerlo así?
No es que lo vaya a usar ya, porque la verdad es que esto está empezando a alargarse demasiado y no quiero esperar a futuras mejoras, pero creo que sería interesante que contemplara ambos casos.

También me gustaría saber en dónde se aplican los casos de color para "Información" y "Story".

Un saludo y gracias
Jenesis


Arriba
 Perfil  
 
 Asunto:
NotaPublicado: 13 May 2009 11:00 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5312
Ubicación: Coruña
jenesis escribió:
Yo necesitaría un "acción", que funcionara también desde el código, sea dentro de PUCK o sea externo.
¿Costaría mucho hacerlo así?
No es que lo vaya a usar ya, porque la verdad es que esto está empezando a alargarse demasiado y no quiero esperar a futuras mejoras, pero creo que sería interesante que contemplara ambos casos.


Es muy fácil, simplemente cuando quieras escribir texto relacionado con una acción, y que por lo tanto use esa "plantilla", en lugar de aPlayer.write("mensaje"), usa aPlayear.writeAction("mensaje").

jenesis escribió:
También me gustaría saber en dónde se aplican los casos de color para "Información" y "Story".


El de "story" por defecto en ninguna parte, sería sólo para usar desde código. En teoría está pensado para cuando cuentas cosas de la historia (una intro, una escena estática en medio de la aventura, etc.) Pero bueno, realmente se podría usar para cualquier cosa, ya que nadie te obliga a usar esas plantillas de una manera o de otra en tu código.

El de "información" si no me equivoco debe de ser el que aparece por ejemplo en el inventario.

_________________
Actúa siempre de tal modo que las decisiones de tu voluntad pudiesen servir como preceptos de una legislación universal (E. Kant)


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 6 mensajes ] 

Todos los horarios son UTC + 1 hora


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 5 invitados


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro

Buscar:
Saltar a:  
cron
Desarrollado por phpBB® Forum Software © phpBB Group
Traducción al español por Huan Manwë para phpBB-Es.COM