CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 19 Nov 2018 03:09

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 17 mensajes ]  Ir a página 1, 2  Siguiente
Autor Mensaje
NotaPublicado: 26 May 2010 16:58 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 10 Sep 2004 00:17
Mensajes: 3039
Ubicación: Chile
Saludos:

Estoy usando en "Modus Vivendi", mi aporte a la CiviliComp, la librería "Cortos" de InformATE! y me gustaría saber si alguien conoce si hay alguna manera de invocar la librería para que muestre los textos de corrido: o sea, sin las pausas que la librería impone para el efecto de texto "animado".

La idea es implementar un mecanismo de activación/desactivación del texto animado sin tener que duplicar todo el texto desplegado mediante la librería.

Atento a su amable respuesta,

_________________
[Incanus]
El Escritorio - Blog Aventurero y Literario


Arriba
 Perfil  
 
NotaPublicado: 26 May 2010 19:30 
Desconectado
Implementador
Implementador
Avatar de Usuario

Registrado: 10 Mar 2004 11:58
Mensajes: 1817
Ubicación: Madrid
La librería tiene la variable de velocidad:
Global velocidad_texto=20;
De hecho, ésta es la función glk que determina la pausa:
glk($00D6, delay*100); ! request_timer_events
Siendo el delay determinado en base al valor de la variable citada.

Si haces velocidad_texto=0 el delay valdrá directamente 0, con lo que es de esperar que no habrá pausa.

Saludos

_________________
_/ /\ R e \_


Arriba
 Perfil  
 
NotaPublicado: 26 May 2010 19:44 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

Registrado: 24 Ago 2007 00:41
Mensajes: 2023
Ubicación: Chile
No entiendo la pregunta, Incanus. Pero si lo detallas mejor, seguro que puedo ayudarte. :wink:

_________________
Eliuk Blau
eliukblau (AT) gmail.com
http://www.caad.es/eliukblau/


Arriba
 Perfil  
 
NotaPublicado: 26 May 2010 19:45 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

Registrado: 24 Ago 2007 00:41
Mensajes: 2023
Ubicación: Chile
jarel escribió:
De hecho, ésta es la función glk que determina la pausa:
glk($00D6, delay*100); ! request_timer_events
Siendo el delay determinado en base al valor de la variable citada.


Supongo que Incanus usará la versión para máquina-z. :wink:

_________________
Eliuk Blau
eliukblau (AT) gmail.com
http://www.caad.es/eliukblau/


Arriba
 Perfil  
 
NotaPublicado: 26 May 2010 19:56 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 10 Sep 2004 00:17
Mensajes: 3039
Ubicación: Chile
jarel escribió:
La librería tiene la variable de velocidad:
Global velocidad_texto=20;
De hecho, ésta es la función glk que determina la pausa:
glk($00D6, delay*100); ! request_timer_events

Si haces velocidad_texto=0 el delay (que calcula el valor desde velocidad_texto) valdrá directamente 0, con lo que supongo que no habrá pausa, o será tan rápida que no se notará.

Puees... no, eso no funciona. Lo primero que probé de hecho fue:
Código:
cortometraje Introduccion1
with
    delay 0,
    descripcion
[...]

y eso no produjo el efecto deseado: que el texto saliera de corrido. Por cierto, otros valores, como -1, 1, 2, 3, etc. tampoco hacen que el texto salga de corrido.

_________________
[Incanus]
El Escritorio - Blog Aventurero y Literario


Arriba
 Perfil  
 
NotaPublicado: 26 May 2010 19:57 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 10 Sep 2004 00:17
Mensajes: 3039
Ubicación: Chile
Eliuk Blau escribió:
Supongo que Incanus usará la versión para máquina-z. :wink:

Correcto.

_________________
[Incanus]
El Escritorio - Blog Aventurero y Literario


Arriba
 Perfil  
 
NotaPublicado: 26 May 2010 21:20 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 10 Sep 2004 00:17
Mensajes: 3039
Ubicación: Chile
Eliuk Blau escribió:
No entiendo la pregunta, Incanus. Pero si lo detallas mejor, seguro que puedo ayudarte. :wink:

Brevemente, la librería permite desplegar en pantalla grupos de frases o strings en forma gradual, agregando pausas automáticas según la duración de cada string.

Algunos jugadores se han quejado de este método, por encontrarlo engorroso o aburrido, y desearían poder ver estos textos de una sola vez, sin pausas. Sería deseable, dicen, poder alternar entre el texto "animado" y el texto "desplegadorápidoperoya" con un comando.

Crear ese comando es trivial. El problema es cómo usar/forzar/modificar la librería para que, al recibir el parámetro de demora cero (u otro valor a definir), despliegue los textos "rápidoperoya". Si esto no se consigue, la única forma de implementar esta alternancia de texto es, cuando está activada la opción de texto "no animado" es duplicar el texto animado y desplegarlo con un print normal...

¿Se entiende, ahora? :-P

_________________
[Incanus]
El Escritorio - Blog Aventurero y Literario


Arriba
 Perfil  
 
NotaPublicado: 26 May 2010 21:32 
Desconectado
Implementador
Implementador
Avatar de Usuario

Registrado: 10 Mar 2004 11:58
Mensajes: 1817
Ubicación: Madrid
A ver, una cosa, por si acaso:
hacer delay=0 no sirve de nada, pues el valor del delay es adjudicado por una función previa.
Lo que hay que hacer 0 es la variable de velocidad del texto.
velocidad_texto=0;
¿Has probado eso también?

Saludos

_________________
_/ /\ R e \_


Arriba
 Perfil  
 
NotaPublicado: 26 May 2010 21:59 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 10 Sep 2004 00:17
Mensajes: 3039
Ubicación: Chile
jarel escribió:
A ver, una cosa, por si acaso:
hacer delay=0 no sirve de nada, pues el valor del delay es adjudicado por una función previa.
Lo que hay que hacer 0 es la variable de velocidad del texto.
velocidad_texto=0;
¿Has probado eso también?

Bueno, veamos. Según el código de la librería, la función "proyeccion" usa la función "PrintAutoPausa":
Código:
[ PrintAutoPausa txt k;
  if (velocidad_texto==0)
    k=PrintPausa(txt,0);
  else
    k=PrintPausa(txt, LStrLen(txt)*10/velocidad_texto+10);
  return k;
];

Y por otra parte, la función "PrintPausa":
Código:
[ PrintPausa msg delay k;
    if (msg~=0) print (string) msg;
    if (delay==0)
        @read_char 1 0 0 k;
    else
        @read_char 1 delay Cortos_Volver k;
    return k;
];

Osea, con velocidad_texto=0, nos pide pulsar una tecla para avanzar el texto :-(

_________________
[Incanus]
El Escritorio - Blog Aventurero y Literario


Arriba
 Perfil  
 
NotaPublicado: 26 May 2010 22:03 
Desconectado
Implementador
Implementador
Avatar de Usuario

Registrado: 10 Mar 2004 11:58
Mensajes: 1817
Ubicación: Madrid
Vale, entonces la velocidad va al revés, los valores indican fracciones :mrgreen: . Sería cuestión de ponerle un valor altísimo a velocidad_texto.
O directamente editar el código de cortos.h de modo que si detecta un valor determinado de velocidad_texto, por ejemplo 1, imprima el texto sin más, pasando de las funciones de la librería.

Saludos

_________________
_/ /\ R e \_


Arriba
 Perfil  
 
NotaPublicado: 26 May 2010 22:20 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 10 Sep 2004 00:17
Mensajes: 3039
Ubicación: Chile
Estimados:

Mi "solución poco elegante pero funcional" es la siguiente:

para alternar texto animado con con texto normal
Código:
! Definiciones para Texto Animado
[animarSub;
 if (velocidad_texto==0){
    velocidad_texto=20;
    "Texto animado ACTIVADO.";
 } else {
    velocidad_texto=0;
    "Texto animado DESACTIVADO.";
 }
];

Verb 'anima'
* -> animar;

En la libreria, antes:
Código:
Class     CortoMetraje
 with      proyeccion [i t;
        if (~~i) Erase_Window();
        if (self provides descripcion) {
            for (i=0:i<(self.#descripcion)/WORDSIZE:i++) {
            if ((self.&descripcion)-->i ofclass string)
                t=PrintAutoPausa((self.&descripcion)-->i);[...]

En la libreria, ahora:
Código:
Class     CortoMetraje
 with      proyeccion [i t;
        if (~~i) Erase_Window();
        if (self provides descripcion) {
            for (i=0:i<(self.#descripcion)/WORDSIZE:i++) {
            if ((self.&descripcion)-->i ofclass string)
            {
                if (velocidad_texto==0)
                    print (string) (self.&descripcion)-->i;
                else
                    t=PrintAutoPausa((self.&descripcion)-->i);
            }
!                t=PrintAutoPausa((self.&descripcion)-->i);

Y el comando "ANIMAR" cumple su cometido. Notar que funciona para texto animado puro: si se usan cortos con código fuente, ya es otra historia... pero yo uso texto animado puro, así que me vale ;-)

¿Comentarios?

_________________
[Incanus]
El Escritorio - Blog Aventurero y Literario


Arriba
 Perfil  
 
NotaPublicado: 27 May 2010 05:56 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

Registrado: 24 Ago 2007 00:41
Mensajes: 2023
Ubicación: Chile
Incanus escribió:
Algunos jugadores se han quejado de este método, por encontrarlo engorroso o aburrido, y desearían poder ver estos textos de una sola vez, sin pausas. Sería deseable, dicen, poder alternar entre el texto "animado" y el texto "desplegadorápidoperoya" con un comando.


Incanus, tengo entendido que con la lib "Cortos", si presiones la tecla "Q", te imprime de un solo tirón todo el texto del corto.

(Solo debes cuidar no limpiar la pantalla después de cada corto [como haces habitualmente; o puedes agregar una pausa global no temporizada, onda "Presiona una tecla..."] para permitir que el usuario pueda leer el texto anterior del corto "mostrado completo de un tirón".)

Revisa eso. :mrgreen:
Saludos, tu compadre. :)

_________________
Eliuk Blau
eliukblau (AT) gmail.com
http://www.caad.es/eliukblau/


Arriba
 Perfil  
 
NotaPublicado: 27 May 2010 14:49 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 10 Sep 2004 00:17
Mensajes: 3039
Ubicación: Chile
Eliuk Blau escribió:
Incanus, tengo entendido que con la lib "Cortos", si presiones la tecla "Q", te imprime de un solo tirón todo el texto del corto.

Error. Suspende el texto en el punto en que presionaste la Q.
Eliuk Blau escribió:
(Solo debes cuidar no limpiar la pantalla después de cada corto [como haces habitualmente; o puedes agregar una pausa global no temporizada, onda "Presiona una tecla..."] para permitir que el usuario pueda leer el texto anterior del corto "mostrado completo de un tirón".)

Ya fue considerado. En los casos en que se va a borrar la pantalla, se pone un mensaje para que avance el texto: "<Pulse una Tecla>" y se espera a este antes de borrar pantalla y pasar siguiente.
Eliuk Blau escribió:
Revisa eso. :mrgreen:

Gracias por las indicaciones, broh, pero ya ves, la experiencia aporta lo suyo ;-)

_________________
[Incanus]
El Escritorio - Blog Aventurero y Literario


Arriba
 Perfil  
 
NotaPublicado: 27 May 2010 17:44 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

Registrado: 24 Ago 2007 00:41
Mensajes: 2023
Ubicación: Chile
Revisaré "Cortos". Nunca la he mirado por dentro. Seguro que le encuentro alguna mañita. :)

_________________
Eliuk Blau
eliukblau (AT) gmail.com
http://www.caad.es/eliukblau/


Arriba
 Perfil  
 
NotaPublicado: 27 May 2010 19:29 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 10 Sep 2004 00:17
Mensajes: 3039
Ubicación: Chile
Eliuk Blau escribió:
Revisaré "Cortos". Nunca la he mirado por dentro. Seguro que le encuentro alguna mañita. :)

Pero... ¿¿viste mi "solución"?? La probé, y con las indicaciones para pausas antes de borrado de pantalla, funciona super bien...

_________________
[Incanus]
El Escritorio - Blog Aventurero y Literario


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 17 mensajes ]  Ir a página 1, 2  Siguiente

Todos los horarios son UTC + 1 hora


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 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