A continuación vamos a ver como crear un inventario, con objetos de distintos tamaños.
Atención: Contenido exclusivo de DesarrolloMultimedia.es. No reproducir. Copyright.
Objects - Objetos
Los objetos son elementos presentes en pantalla que a diferencia de los hotspots,
se pueden mover, cambiar y desaparecer. Los objetos se suelen usar para crear
cosas que el personaje podrá coger (desaparecerán de la pantalla y pasarán al
inventario, algo que no se puede hacer con los hotspots) y para cosas que
necesites animar.
Vamos a usar uno de los elementos tradicionales de los juegos de aventura
gráfica, una llave. Vamos a imaginar que tenemos una puerta cerrada que se puede
abrir con una llave que el jugador debe coger en otra estancia. Por favor,
cuando crees tu juego, intenta evitar este puzle, es algo que se ha repetido
hasta la saciedad en este tipo de juegos, se original ;-) 
Ve a la lista desplegable que ya conoces, donde hemos seleccionado "Walkable
areas" y "Hotspots" en partes previas de este tutorial, y selecciona
Objects
Ahora vamos a añadir un objeto a la estancia. Simplemente haz clic derecho sobre
el fondo en la posición donde quieras añadirlo y elige
"New object here"
del menú.
Y por arte de magia, una
taza azul aparecerá en la pantalla. No te asustes,
este es el sprite usado por defecto en AGS y aparecerá hasta que asignes la
imagen que desees para dicho objeto. Fíjate que la rejilla de propiedades ha
cambiado para mostrar los detalles del nuevo objeto, uno de los cuales se llama
Image. Selecciona esta propiedad,
Image, y aparecerá el botón
“…” a su lado.

Añadiendo un objeto a la estancia
Haz clic en el botón
"..." y AGS te llevará al
Sprite Manager
(Administrador de Sprites). Explicaremos sus funciones en detalle más
adelante, pero básicamente se trata de la parte de AGS donde gestionas (importas
y exportas) todos tus gráficos excepto los fondos de estancia. Deberías ver una
pequeña imagen de una llave con el nombre
sprite number 2. Haz
doble clic sobre ella, más adelante importaremos nuestros propios gráficos.
Fíjate en que la taza azul ha pasado a ser una llave. Puedes moverla por la
pantalla haciendo clic sobre ella y arrastrando el sprite por el fondo. Sitúala
en algún lugar accesible al jugador (es decir, un área transitable, no coloques
nunca los objetos en zonas a las que el jugador no pueda llegar).
Ahora debemos asignarle un nombre a este objeto. Tenemos que buscar un nombre
adecuado ya que tenemos que hacer referencia a este objeto dentro del script al
igual que lo hicimos con los hotspots. Busca dentro de la rejilla de propiedades
la opción
"Name" y escribe un nombre adecuado. La convención usada en AGS
es que los nombres de objetos empiecen con la letra “o”, por ejemplo
oKey
(en nuestro caso también podríamos usar nombres como
oLlave, oEspada).

Astutamente, he colocado la llave en medio del camino ;-)
Antes de que hagamos que la llave pueda ser recogida por el jugador, déjame que
te explique brevemente un par de elementos de la rejilla de propiedades:
-
Baseline –
Normalmente la línea base para cualquier objeto, suele ser la parte más
baja del gráfico (por si no lo recuerdas, las líneas base se usan para
calcular que elementos deben ser dibujados por encima o por debajo del fondo
de la estancia dependiendo de su posición en pantalla). Puede que en algún
caso en espacial quieres saltarte esta regla.
Lo que sucederá con nuestra llave es que cuando el jugador camine sobre ella,
esta permanecerá delante de sus pies. No queremos que pase esto, ya que se
supone que la llave esta tirada en el suelo. Para corregir este efecto deberás
cambiar el valor de Baseline dentro de la rejilla de propiedades, por
un valor de 5 (Esto significa que ese objeto se dibujará detrás de
cualquier otro elemento que tenga una Línea Base en pantalla mas baja que la
coordenada Y=5). Con esto nos aseguramos que el jugador siempre aparecerá
dibujado encima de la llave.
-
Visible –
Esta opción hace que el objeto sea visible desde el comienzo del juego. En
nuestro caso queremos que la llave sea visible, pero cuando desarrolles tus
propios juegos, puede que no quieras que un objeto aparezca hasta que el
jugador halla realizado cierta acción.
Y ahora, vamos a concentrarnos de una vez en el objetivo de todas estas
divagaciones, que el personaje coja la llave.
Inventario
Espera, aun tenemos algo que hacer antes de permitir que el jugador coja la
llave. Después de todo lo que hemos hecho podríamos hacer que la cogiese sin
problemas, ¿Pero a donde iría esa llave? Es hora de que definamos
el
Inventario.
Ve al
Árbol de Proyectos (Project Tree) y selecciona
"Inventory
Items”. Fíjate que ya hay dos elementos definidos -
"Key" y
"Pink
poster". Estos dos elementos están definidos por defecto para ayudarte. Haz
doble clic sobre
"1: iKey", y deberías ver una ventana con la imagen de
la llave. Como estarás pensando, esa imagen es muy pequeña para usarla como
representación del objeto en el inventario. Estoy seguro de que había algo más
apropiado en la lista de sprites que vimos en el apartado anterior.
Dentro de la rejilla de propiedades busca "
Image", selecciónala y pulsa
el botón
“…” como ya hemos hecho varias veces. Aparecerá el
Administrador de Sprites (Sprites Manager). Dentro de este, busca el
sprite número 5. Como podrás observar es una imagen más grande de la llave.
Vamos a usar esta imagen como icono para la llave dentro del inventario. Haz
doble clic sobre el sprite para seleccionarlo.

Afortunadamente tenemos una imagen más grande para la llav
Como puedes ver, hay más opciones dentro de esta ventana, pero por ahora no nos
interesan, así que olvídate de ellas por ahora y vamos a centrarnos en nuestro
objetivo, hacer que el personaje coja la llave. Recuerda que su nombre de script
es
iKey, ya que lo vamos a necesitar más adelante.
Volvemos a la lista de Events - Eventos
Vuelve hasta el panel
Objects del Editor de Estancias (Room Editor),
y haz clic en… ¿A qué no lo adivinas? Pues si, haz clic en el botón
Events.
Como podrás observar, los eventos disponibles son muy parecidos a los que
teníamos dentro de los hotspots:

La lista de eventos de objeto
Fíjate en las dos posibilidades más obvias:
"Interact object" (Interactuar
con objeto) y "Pick up object"(Coger objeto). En esta ocasión queremos usar
el evento "Interact object". Lo hacemos de esto modo por que estamos usando el
interfaz de Sierra como ya sabrás no dispone de un comando específico para
Coger. Los eventos "Pick up", "Usermode1" y "Usermode2" te serán muy útiles
cuando crees un juego basado en el interfaz de Lucasarts que usa más comandos
verbales del tipo Mirar, Coger, Usar, etc.….
Así que selecciona
"Interact object" y haz clic en el botón
"...".
Queremos que ocurran dos cosas cuando el jugador coja la llave: primero, el
objeto tiene que desparecer de la pantalla, y segundo, el objeto tiene que ser
añadido al inventario del jugador.
Aquí esta el script que yo he usado. Como bonificación adicional, he decidido
dar 5 puntos al jugador por resolver este pequeño problema, pero esto no es algo
necesario y no quieres complicarte la vida con un tercer comando en el script:

El script para coger la llave
Fíjate que nuestra solución no es del todo perfecta, el jugador puede hacer clic
en la llave usando el comando Interactuar (representado con un mano en el
interfaz de estilo Sierra) desde cualquier parte de la pantalla y la llave
pasará a su inventario sin que el personaje ande hasta ella para recogerla.
Tampoco le mostramos al jugador un mensaje informándole de la acción que acaba
de realizar. Pero no te preocupes, porque por ahora con esto nos vale, y más
adelante puedes añadir más opciones al script.
Bueno, parece que por fin tenemos una estancia completamente funcional. Haz una
prueba como ya hemos hecho anteriormente y comprueba que todo lo que has añadido
funciona correctamente, Una vez que el jugador haya recogido la llave, abre su
inventario y comprueba que esta dentro, si es así, todo correcto.
Opciones de Estancia - Room Settings
Por ultimo, aquí tienes una breve descripción de las diferentes opciones
disponibles para configurar una estancia (disponibles seleccionado Nothing
en la lista desplegable del editor):
-
PlayMusicOnRoomLoad –
Escribe un número en este campo para que se reproduzca esa música de fondo
cuando el jugador entre en la estancia. Previamente habrás añadido las
canciones y les habrás asignado un número. Dispones de más información sobre
este tema en capítulos más avanzados del manual.
-
SaveLoadEnabled –
si esta opción esta desactivada, un mensaje del tipo ("Sorry, not now" – “Lo
siento, ahora no”) se mostrará si el jugador intenta guardar la partida en esa
estancia.
-
ShowPlayerCharacter –
si se activa esta opción el personaje no será visible en pantalla y se
desactiva el modo Caminar. Esta opción es muy útil para primeros planos al
observar objetos o cuando se manipulen paneles o puzles.
-
PlayerCharacterView –
puedes escribir un número aquí para usar otro gráfico del personaje mientras
este en esta estancia. Esto te será muy útil por ejemplo cuando muestres una
perspectiva superior o un mapa, ya que no querrás que el gráfico del personaje
sea el mismo que el de la perspectiva horizontal...
-
MusicVolumeAdjustment –
Te permite ajustar el volumen de la música de fondo de esta estancia.