CAAD

Comunidad de Aventuras Conversacionales y Relatos Interactivos
Fecha actual 18 Dic 2018 15:05

Todos los horarios son UTC + 1 hora




Nuevo tema Responder al tema  [ 5 mensajes ] 
Autor Mensaje
NotaPublicado: 08 Abr 2011 12:06 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
Estoy haciendo la puerta de mi vida. :lol:

Una puerta es una hoja de madera u otro material con una maneta o pomo que es lo que acciona el mecanismo que la cierra y la abre.
Puedo hacer que la puerta responda del mismo modo a:
abrir/girar/ puerta/pomo/maneta
Pero dado que quiero lograr el mayor grado de simulacionismo, me estoy planteando que el pomo o la maneta sea un objeto unido a la puerta por una relación de componente.
Sé que lo consulté aquí mismo hace mucho, pero no lo encuentro y en la doc tampoco se menciona este tipo de relación. El caso es que no recuerdo porqué razón un objeto que forma parte de otro deja de verse incluso cuando lo examinas intencionadamente.
¿Podrías refrescarme la memoria?

_________________
Si la mentira tuviera color, todos seríamos daltónicos...


Arriba
 Perfil  
 
NotaPublicado: 08 Abr 2011 15:39 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5304
Ubicación: Coruña
El motivo de que los componentes de las cosas se comporten así es que no están pensados para hacer eso que tú estás haciendo. En realidad las relaciones "se compone de" están pensadas simplemente para las partes del cuerpo en el sistema de combate (armas y armaduras - lo de armaduras también aplicable a prendas en general). Si tu personaje tiene un brazo, en ese brazo podrá blandir una espada (si se especifica que es un arma que se lleva en el brazo). Si tu personaje tiene una pierna, en esa pierna se podrá vestir una bota. Si hay un combate y lanzas una estocada, esa estocada impactará en una determinada parte del cuerpo del contrario, etc.

En ese contexto, no tiene mucho sentido que se pueda interactuar con las partes de otras cosas, de hecho sería incluso contraproducente (no parece que interese que "mirar brazo izquierdo del goblin" o "coger dedo del orco" funcione por defecto; incluso si en el segundo caso sale el mensaje para objetos fijos en el sitio); así que no implementé esa interacción.

De todas formas, para lo que tú quieres hacer no necesitas hacer el pomo parte de la puerta. Simplemente puedes crear el objeto pomo, no ponerle nombre singular para que sea invisible (pero sí nombre de referencia para que el jugador pueda "mirar el pomo", "girar el pomo", etc.), hacerlo fijo en el sitio y luego programar las interacciones como tú quieras. Si quieres que haya una relación entre el pomo y la puerta, para poder hacer de forma genérica cosas como "obtener la puerta a la que pertenece un pomo X dado", puedes crear tú esa relación con el nombre que quieras, sin necesidad de que sea una relación "se compone de", y acceder a la puerta desde el código del pomo. Realmente no creo que ahorraras trabajo si las relaciones "se compone de" se comportaran como tú dices, al final es lo mismo.

_________________
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  
 
NotaPublicado: 08 Abr 2011 15:48 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
Al-Khwarizmi escribió:
El motivo de que los componentes de las cosas se comporten así es que no están pensados para hacer eso que tú estás haciendo. En realidad las relaciones "se compone de" están pensadas simplemente para las partes del cuerpo en el sistema de combate (armas y armaduras -....


Entiendo, sé que me lo comentaste pero ya no me acordaba y no he conseguido encontrar el hilo.


Citar:
De todas formas, para lo que tú quieres hacer no necesitas hacer el pomo parte de la puerta. Simplemente puedes crear el objeto pomo, no ponerle nombre singular para que sea invisible (pero sí nombre de referencia para que el jugador pueda "mirar el pomo", "girar el pomo", etc.), hacerlo fijo en el sitio y luego programar las interacciones como tú quieras. Si quieres que haya una relación entre el pomo y la puerta, para poder hacer de forma genérica cosas como "obtener la puerta a la que pertenece un pomo X dado", puedes crear tú esa relación con el nombre que quieras, sin necesidad de que sea una relación "se compone de", y acceder a la puerta desde el código del pomo. Realmente no creo que ahorraras trabajo si las relaciones "se compone de" se comportaran como tú dices, al final es lo mismo.


Estoy haciendo pruebas usando el nombre "pomo", como nombre de referencia y nombre de descripción. Piensa que si la puerta ha de servir para una librería de elementos arquitectónicos, hay que intentar que sea una unidad lo más independiente posible.
Ya contaré cómo me va. :)

_________________
Si la mentira tuviera color, todos seríamos daltónicos...


Arriba
 Perfil  
 
NotaPublicado: 08 Abr 2011 15:55 
Desconectado
Samudio
Samudio
Avatar de Usuario

Registrado: 09 Mar 2004 16:16
Mensajes: 5304
Ubicación: Coruña
jenesis escribió:
Estoy haciendo pruebas usando el nombre "pomo", como nombre de referencia y nombre de descripción. Piensa que si la puerta ha de servir para una librería de elementos arquitectónicos, hay que intentar que sea una unidad lo más independiente posible.
Ya contaré cómo me va. :)

Bueno, aunque tuvieras el pomo como componente de la puerta seguirías necesitando importar las dos entidades para usarla, por mucho que una fuese componente de la otra. Cuando haga la interfaz para utilizar fácilmente librerías de objetos predefinidos, está claro que tendré que meterle funcionalidad para importar grupos de entidades, y no sólo entidades individuales (tanto con componentes como sin ellos).

Lo de usar pomo como nombre de referencia efectivamente se puede hacer (y luego puedes mirar en "args" para ver si matchea con "pomo" y diferenciar comandos sobre el pomo de comandos sobre la puerta). Con eso sí que consigues que la puerta y el pomo sean una unidad. Pero de todas formas, fíjate que si quieres definir en tu librería también una "puerta con llave", sería necesaria otra entidad que sería su llave, y ahí sí que no es posible que lo metas todo en el mismo objeto porque la llave ni es una parte "física" de la puerta ni tiene por qué estar siquiera en la misma localidad. Así que está claro que para que el mecanismo de reutilización de objetos sea lo suficientemente flexible, tendrá que soportar la importación de grupos de objetos (junto con las relaciones entre ellos) además de la importación de objetos individuales.

_________________
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  
 
NotaPublicado: 08 Abr 2011 16:23 
Desconectado
xyzzy

Registrado: 09 Mar 2004 22:50
Mensajes: 9150
Al-Khwarizmi escribió:
Bueno, aunque tuvieras el pomo como componente de la puerta seguirías necesitando importar las dos entidades para usarla, por mucho que una fuese componente de la otra. Cuando haga la interfaz para utilizar fácilmente librerías de objetos predefinidos, está claro que tendré que meterle funcionalidad para importar grupos de entidades, y no sólo entidades individuales (tanto con componentes como sin ellos).


Sí, por eso he cambiado la estrategia, lo que ocurre es que aún así quería saber cómo funcionaba el tema de las relaciones de componente, y por eso no he retirado la cuestión.

Citar:
Lo de usar pomo como nombre de referencia efectivamente se puede hacer (y luego puedes mirar en "args" para ver si matchea con "pomo" y diferenciar comandos sobre el pomo de comandos sobre la puerta). Con eso sí que consigues que la puerta y el pomo sean una unidad. Pero de todas formas, fíjate que si quieres definir en tu librería también una "puerta con llave", sería necesaria otra entidad que sería su llave, y ahí sí que no es posible que lo metas todo en el mismo objeto porque la llave ni es una parte "física" de la puerta ni tiene por qué estar siquiera en la misma localidad. Así que está claro que para que el mecanismo de reutilización de objetos sea lo suficientemente flexible, tendrá que soportar la importación de grupos de objetos (junto con las relaciones entre ellos) además de la importación de objetos individuales.


Sí, hay que tener muchas cosas en cuenta, por ejemplo lo que sigue parece que funciona a primera vista.

Código:
Tu orden:  gira el pomo de la puerta
Giras el pomo/la maneta de la puerta sin llegar a abrirla.

Tu orden:  abre la puerta
Abres la puerta.

Tu orden:  gira el pomo
Giras el pomo/la maneta de la puerta sin llegar a cerrarla.

Tu orden:  abre la puerta
La puerta ya está abierta.

Tu orden:  ex puerta
Es una puerta

Tu orden:  ex pomo
Esta puerta no tiene nada especial, es una puerta normal y corriente.


Pero... obtendremos la misma respuesta en el momento en que el jugador intente simplemente "girar la puerta", lo cual sería lo mismo que "entornar". Así que tengo que analizar que la frase realmente contenga "pomo", "maneta" o "manilla". Puede parecer engorroso, pero como es algo que solo se va a hacer una vez, merece la pena.

Sobre el tema de la llave pues va a pasar lo mismo que con las relaciones estructurales de dirección que se crean entre las localidades, que no se van a poder copiar. Así que igual sería cuestión de que en el mundo "casa.xml", se muestren sendos y documentados ejemplos de cómo hacerlo. :roll:
Ya veremos. :)

_________________
Si la mentira tuviera color, todos seríamos daltónicos...


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