CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 13 Dic 2017 08:27

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 21 mensajes ]  Ir a página 1, 2  Siguiente
Autor Mensaje
 Asunto: pictureAt
NotaPublicado: 01 Ago 2016 18:11 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 09 Feb 2012 20:33
Mensajes: 855
Estoy intentando imprimir un gráfico con el condacto PICTUREAT. El caso es que debo imprimir el gráfico por su "número" de recurso, es decir para el objeto:

##define grf pecera.png 101

Debo imprimirlo de la forma;

PICTUREAT X Y 101

Pero no me funciona, sólo funciona de la forma:

PICTUREAT X Y pecera.png

es decir, con el indentificador txtpaws.

Edité el javascript de la aventura y en array de recursos aparece:

Código:
resources.push([RESOURCE_TYPE_IMG, 361, "dat/inv_flipflop.png"]);
resources.push([RESOURCE_TYPE_IMG, 357, "dat/inv_pecera.png"]);


Para ambos los tengo definido en la pestaña DEF:

##define grf inv_pecera.png 101
##define grf inv_flipflop.png 105

Sin embargo ngPaws en el array de recursos le ha dado los valores "361 y 357", ¿porqué no los ha guardado con los valores 101 y 105?

_________________
Te quiero... lo siento Yoda sólo tenemos café.


Arriba
 Perfil  
 
 Asunto: Re: pictureAt
NotaPublicado: 01 Ago 2016 21:55 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

Registrado: 23 Abr 2004 08:49
Mensajes: 2890
Ubicación: España (Galicia)
Hola,

Ahora mismo no caigo por qué (bueno, básicamente es para evitar colisiones con otros recursos), pero se le suman unas constantes a los números de gráficos y a los números de sonidos. Esto lo hace txtPAWS de manera automática.

Lo que me sorprende es que te preocupe eso cuando dices que usando el id del recurso va perfectamente... Si ya funciona...

_________________
-- Baltasar, el arquero


Arriba
 Perfil  
 
 Asunto: Re: pictureAt
NotaPublicado: 01 Ago 2016 23:11 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 09 Feb 2012 20:33
Mensajes: 855
Bueno, comento. Estoy intentando crear una rutina para mostrar una imagen de los objetos que tenemos en el inventario en una zona de la pantalla, y me he encontrado con ese problema, debe hacer referencia al recurso gráfico por el valor dado en la pestaña "DEF" no por su identificador en txtPaws:

Código:
/PRO INTERRUPT 18
; ** Proceso interrupción para imprimir inventario gráfico.

; Buscaremos todos los objetos que tenemos mediante un bucle:
; Y se imprimen con pictureat
_ _
 CLEAR fAux2
 CLEAR fAux3
 let fAux 170 ;posición en vertical del objeto
 LT: fAux2 @fNumObjetos ;@fNUMERO_OBJETOS     ;fNUMERO_OBJETOS = OBJETOS CREADOS + 1
 {
    CARRIED# @fAux2
    {
       let fAux3 @fAux2    ; Guardamos fAux2
       plus fAux2 100      ; El recurso para el objeto será 100 + el número de objeto
       pictureat 45 @fAux @fAux2
       plus fAux 85       ; Desplazamos en vertical para el siguiente objeto.
       let fAux2 @fAux3   ; Recuperamos fAux2
    }
    PLUS fAux2 1
 }
 done


Sin entrar en mucho detalles, comentar que en la línea en la que uso el condacto pictureat, @fAux2 contiene el valor dado al recurso en la pestaña define.

Código:
; El valor del objeto de inventario será su número de objeto
; más 100
##define grf inv_flipflop.png 105
##define grf inv_pecera.png 101


Y lo único que me falla (por ahora) ese condacto.

_________________
Te quiero... lo siento Yoda sólo tenemos café.


Arriba
 Perfil  
 
 Asunto: Re: pictureAt
NotaPublicado: 01 Ago 2016 23:18 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
Balta, cuando la imagen la tienes que indexar no puedes usar el identificador, básicamente quiere pintar la imagen cuyo número está en un flag, que va ciclando por todos los objetos, y cuando tiene uno, pinta la imagen "numero de objeto + 100".

Lo de sumar 256 a los "grf" viene desde tiempos de Superglús, y es así porque en el empaquetador blorb no hay un concepto de "grafico de localidad" y "grafico suelto", solo el de gráfico, y no puede haber dos gráficos con el mismo número, así que internamente "hace la trampa" y le suma 256 para evitar la colisión. En ngPAWS se usa el mismo txtpaws que en Superglús, aunque no hay empaquetado, por lo que acaban igual las cosas.

La solución a tu problema edlobez obviamente es cambiar ese PLUS 100 por PLUS 356.

_________________
Sígueme en twitter: @uto_dev
http://www.ngpaws.com


Arriba
 Perfil  
 
 Asunto: Re: pictureAt
NotaPublicado: 02 Ago 2016 02:58 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 09 Feb 2012 20:33
Mensajes: 855
Uto escribió:
La solución a tu problema edlobez obviamente es cambiar ese PLUS 100 por PLUS 356.


Con esto perfecto... bueno casi. Cuando tengo un objeto en el inventario me lo pinta en la posición de la pantalla que quiero. Pero cuando el segundo objeto, me lo pinta en la posición que corresponde, pero se borra el primer objeto.
Es como si el pintar el segundo objeto borrara el primero. O no da tiempo a que se muestre ya que cuando tengo dos objetos en el inventario si me quedo quieto en una estancia se puede ver el primer objeto casi parpadeando muy muy rápido.
Como dato, cuando pinta el segundo objeto me lo pinta desplazado, es decir en el lugar que corresponde de la pantalla para un segundo objeto. Cuando suelto este segundo objeto, aparece el primero pintado en la posición que corresponde de la pantalla... no sé si me explico.
El caso es como digo, como si el segundo objeto borrara el primero.

He intentado trastear en el código del condacto PICTUREAT, pero no me aclaro mucho.

Por cierto:
Spoiler: Mostrar
Sólo se pueden tener como máximo dos objetos en el inventario, sí ya tienes dos objetos:
> coger chanclas
Wally : ¡¡¡¡Eyy!!!! que sólo tengo dos manos.


EDITO:
Si sirve de ayuda, he puesto el código anterior para imprimir los objetos en lugar de un proceso interrupción en el proceso 1, así lo puedo visualizar en el html. El código html que se genera teniendo dos objetos en el inventario ( pecera-357 flipflop- 361) es:

Código:
<div class="graphics half_graphics">
           <img style="height: 100%;" alt="" class="location_picture" src="dat/diez.png">
       <img alt="" id="pictureat_357" style="display:none">
       <img src="dat/inv_flipflop.png" alt="" id="pictureat_361" style="position: absolute; left: 392px; top: 80px; z-index: 100; height: 15px;">
</div>


Al objeto con id=357, es como si no se rellenara ningún campo, en concreto la parte del código del condacto pictureat:

Código:
....
var newImage = new Image();
newImage.onload = function ()
{
    newimageHeight = Math.floor(newImage.height * scale);
    $('#' + id).css('position','absolute');
    $('#' + id).css('left', x + screenImageX + 'px');
    $('#' + id).css('top',y + 'px');
    $('#' + id).css('z-index','100');
    $('#' + id).attr('src', filename);
    $('#' + id).css('height',newimageHeight + 'px');
    $('#' + id).show();
}
.....


Parece que no llega a ejecutarse y ya esto se me escapa, no sé porqué es, o bien no tiene nada que ver con el problema. Sólo pasa cuando hay un segundo objeto. Si sólo hay un objeto en el inventario lo pinta en su posición sin problemas sea cual sea el objeto.

Bueno no sé si estoy liando mucho la cosa, en todo caso se quita el inventario gráfico y tampoco nos complicamos la vida.

Gracias

_________________
Te quiero... lo siento Yoda sólo tenemos café.


Arriba
 Perfil  
 
 Asunto: Re: pictureAt
NotaPublicado: 02 Ago 2016 11:47 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
Este condacto que era muy sencillo en Superglús, se complica por el modo en el que funciona javascript. El caso es que no funcionaba bien para más de una imagen. Lo he arregl...remodela... reconstruido:

https://raw.githubusercontent.com/Utode ... tureat.jsp

_________________
Sígueme en twitter: @uto_dev
http://www.ngpaws.com


Arriba
 Perfil  
 
 Asunto: Re: pictureAt
NotaPublicado: 02 Ago 2016 13:49 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 09 Feb 2012 20:33
Mensajes: 855
Uto escribió:
Este condacto que era muy sencillo en Superglús, se complica por el modo en el que funciona javascript. El caso es que no funcionaba bien para más de una imagen. Lo he arregl...remodela... reconstruido:

https://raw.githubusercontent.com/Utode ... tureat.jsp


Oh! Gracias! Perdón por los dolores de cabeza. :oops:

Lo he probado y funciona perfecto. :P

_________________
Te quiero... lo siento Yoda sólo tenemos café.


Arriba
 Perfil  
 
 Asunto: Re: pictureAt
NotaPublicado: 02 Ago 2016 17:26 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
edlobez escribió:

Oh! Gracias! Perdón por los dolores de cabeza. :oops:

¡Al contrario! ¡gracias a ti estoy limpiando ngPAWS de bugs!

De hecho estoy esperando a que acabes para publicar una nueva version de ngPAWS que estoy por bautizar ngPAWS edlobez edition ;-)


edlobez escribió:
Lo he probado y funciona perfecto. :P

Genial :-)

_________________
Sígueme en twitter: @uto_dev
http://www.ngpaws.com


Arriba
 Perfil  
 
 Asunto: Re: pictureAt
NotaPublicado: 03 Ago 2016 01:56 
Desconectado
Archivero
Archivero

Registrado: 05 Abr 2014 17:40
Mensajes: 264
Saludos.

Uto escribió:
De hecho estoy esperando a que acabes para publicar una nueva version de ngPAWS

*Con una cara larga hace círculos en la arena con el dedo.*

Spoiler: Mostrar
Para cuándo se podrá solucionar el fallo con mi querido Superglús? Sí que quiero retomar la programación.


Arriba
 Perfil  
 
 Asunto: Re: pictureAt
NotaPublicado: 03 Ago 2016 12:43 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
El testigo escribió:
Saludos.

Uto escribió:
De hecho estoy esperando a que acabes para publicar una nueva version de ngPAWS

*Con una cara larga hace círculos en la arena con el dedo.*

Spoiler: Mostrar
Para cuándo se podrá solucionar el fallo con mi querido Superglús? Sí que quiero retomar la programación.


Estrictamente hablando no hay ningún fallo en Superglús, el último funciona perfectamente como lleva funcionando hace varios años. El problema si no recuerdo mal es que la última version de JAWS le pasaba algo y querias utilizar otro software de lectura que no funcionaba con Superglús. Para tratar de solucionar tu problema intenté crear un nuevo IDE para Superglús basado en el de ngPAWS, pero algo le pasa con los Windows de 32 bits que no he podido revisar, y sinceramente no se cuando le dedicaré tiempo a un IDE experimental en un sistema obsoleto que de todos modos tiene un IDE oficial funcionando, cuando tengo cosas que hacer en otros sistemas no obsoletos como ngPAWS, y otras cosas en las que ando metido :-)

En resumen, se que está ahí, sería bueno que Superglús tuviera ese IDE, porque eso permitiría compilarlo para Linux y OSX también, pero son tareas de prioridad muy baja, sobre todo teniendo en cuenta que hablamos de un sistema superado por su sucesor.

_________________
Sígueme en twitter: @uto_dev
http://www.ngpaws.com


Arriba
 Perfil  
 
 Asunto: Re: pictureAt
NotaPublicado: 03 Ago 2016 21:31 
Desconectado
Semimomio
Semimomio
Avatar de Usuario

Registrado: 23 Abr 2004 08:49
Mensajes: 2890
Ubicación: España (Galicia)
Hola,

Todo eso está muy bien, pero yo no haría "PLUS 356" a pelo: guardaría ese valor en una constante por si acaso cambiara en el futuro.

Lo de hacer un bucle que recorra todos los gráficos nunca se planteó. Sí es cierto que el primero que salga va a tener el id numérico más bajo, y el último el más alto.

Quizás se podría hacer una constante creada automáticamente para obtener el número del recurso gráfico más bajo, y también el más alto, así como lo mismo para el audio... no sé. Algo así como el vocabulario, que para cada palabra se crea una constante _voc_PALABRA con su valor correspondiente.

_________________
-- Baltasar, el arquero


Arriba
 Perfil  
 
 Asunto: Re: pictureAt
NotaPublicado: 04 Ago 2016 10:01 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
baltasarq escribió:
Todo eso está muy bien, pero yo no haría "PLUS 356" a pelo: guardaría ese valor en una constante por si acaso cambiara en el futuro.

Pues tienes razón, porque de hecho es un parámetro de txtpaws si no recuerdo mal (le puedes decir que sume 854 si quieres, aunque ni el IDE de Superglús ni el de ngPAWS lo hacen).

baltasarq escribió:
Lo de hacer un bucle que recorra todos los gráficos nunca se planteó. Sí es cierto que el primero que salga va a tener el id numérico más bajo, y el último el más alto.

Bueno, no es algo tan nuevo, el inventario gráfico es el típico punto en el que necesitas esto. En el pasado se ha hecho con DOALL y yo recuerdo hacer cosas así también con NMP para "Isla" por ejemplo. Al final aunque los identificadores de txtPAWS sirvan para casi todo, no se usan cuando se quiere acceder mediante un índice. Es la misma razón por la que para algunas cosas aún se siguen usando las tablas de mensajes, que se pueden indexar y escribir el mensaje [1000 + número de objeto referenciado] o [400 + numero de localidad actual] o [500 + valor del flag tal]. En este caso se puede pintar la imagen [356 + número de objeto referenciado]



baltasarq escribió:
Quizás se podría hacer una constante creada automáticamente para obtener el número del recurso gráfico más bajo, y también el más alto, así como lo mismo para el audio... no sé. Algo así como el vocabulario, que para cada palabra se crea una constante _voc_PALABRA con su valor correspondiente.


Hmmm, pues sería una cosa muy buena, que txtpaws calculara el número de objetos y localidades, e incluso mensajes o mensajes del sistema y creara unas constantes ficticias que pudieran ser usadas en el código después, por ejemplo _obj_LASTOBJ, _loc_LASTLOC, _msg_LASTMSG y _sys (el formato lo pongo para que se parezca al las de _voc_XXXXX mas que nada).

En este hilo se abordaron algunas maneras de recorrer los objetos y algunas requerían saber cual era el número del último objeto, por lo que tener una constante para ello sería genial, aunque al final le dimos la vuelta al tema y no nos hacía falta, pero quizá en otros casos sí :-)

viewtopic.php?f=6&t=6026&p=73762&hilit=DOALL#p73762

Una cosa: ¿txtpaws es de una pasada solo no? Lo digo porque los mensajes y los mensajes del sistema están antes que los objetos y localidades, y las localidades antes que los objetos, por lo que sería imposible usar esas constantes antes de ser calculadas, cosa que en principio no parece muy necesario por otro lado.

_________________
Sígueme en twitter: @uto_dev
http://www.ngpaws.com


Arriba
 Perfil  
 
 Asunto: Re: pictureAt
NotaPublicado: 04 Ago 2016 15:26 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 09 Feb 2012 20:33
Mensajes: 855
baltasarq escribió:
Todo eso está muy bien, pero yo no haría "PLUS 356" a pelo: guardaría ese valor en una constante por si acaso cambiara en el futuro.


No lo había tenido en cuenta, creo una constante con ese valor mejor.

_________________
Te quiero... lo siento Yoda sólo tenemos café.


Arriba
 Perfil  
 
 Asunto: Re: pictureAt
NotaPublicado: 24 Ago 2016 15:54 
Desconectado
Betatester
Betatester
Avatar de Usuario

Registrado: 09 Feb 2012 20:33
Mensajes: 855
Segùn leo en la documentación de pictureat: https://github.com/Utodev/ngPAWS/wiki/PICTUREAT_ES, sólo debo preocuparme de donde colocar el gráfico según la posición relativa del gráfico de la localidad actual, pero tengo un problema según el navegador

Linux resolución 1366x768 firefox:

Imagen

Windows 1680x1050 firefox:

Imagen

Windows 1680x1050 Chorme:

Imagen

Los objetos del inventario de la izquierda siempre salen ok, sin embargo los esqueletos de la derecha no, se descuadra, según lo pongo bine para un SO-navegador, se descuadra para el otro.

La forma en que presento los esqueletos:

Código:
pictureat 1500 100 wilmaesq.gif
pictureat 1500 250 herbertesq.gif


Como presento en inventario está más arriba en este mismo hilo y se presenta ok. ¿Cómo puedo hacer para que los esqueletos no se me descojonen?

_________________
Te quiero... lo siento Yoda sólo tenemos café.


Arriba
 Perfil  
 
 Asunto: Re: pictureAt
NotaPublicado: 24 Ago 2016 16:58 
Desconectado
Momio
Momio
Avatar de Usuario

Registrado: 09 Mar 2004 16:14
Mensajes: 4614
¿Cual es el tamaño del gráfico de localidad? ¿Es el mismo tamaño en todas las localidades? ¿Esas bandas negras donde aparecen inventario y esqueletos son parte del gráfico?

_________________
Sígueme en twitter: @uto_dev
http://www.ngpaws.com


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 21 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 3 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