4º- Objetos:
Vamos a continuar este tutorial volviendo a retomar nuestro editor de niveles 'World Editor'.
Seguro que con el tutorial de 'World editor' habrás creado un nivel con todos los ejemplos de ese tutorial,
y lo más seguro es que te haya quedado una especie de escenario muy raro y pequeño, pero aún te resultará muy útil
en este tutorial de Entidad 3D para seguir experimentando toda clase de cosas antes de pasarlas a un escenario
más grande que podría ser el del juego que quieras crear.
Vamos entonces a darle un poco más de vida a ese escenario.
Colocando objetos recogibles:
En Entidad 3D podremos colocar en nuestro escenario una serie de objetos que podrán ser recogidos por
el jugador para engrosar un inventario de objetos que nosotros (como creadores del juego) podremos decidir
su utilidad en el transcurso del juego.
Estos objetos no tienen el mismo tratamiento que los que representan las armas, munición, energía y escudo, sino que
son otros objetos independientes y de utilidad configurable. Cada objeto es en realidad un fichero .act igual
que los que hemos utilizado para personajes o también para armas, munición, etc..., pero estos ficheros
.act en lugar de estar en la carpeta 'Actors' deben estar en la carpeta 'Objetos' y tienen que tener
un nombre particular para su posterior control.
Para cada objeto distinto debemos tener un .act preparado que será el objeto en 3D que represente ese objeto,
en este caso no es necesario que el .act contenga animaciones. También debemos de ir pensando en asociarle
un número a cada objeto distinto. Finalmente tenemos que tener preparada una imagen 2D de un tamaño de 32x32 que representará
el objeto en el inventario del jugador.
Como podrás ver dentro de la carpeta 'Objetos', ya hay unos cuantos objetos que utiliza el juego de ejemplo, si
quieres puedes copiarlos con otros nombres para utilizarlos en tus juegos, pero si cambias directamente los nombres de los
ficheros, los juegos y demos de ejemplo dejarán de funcionar.
Vamos a ver como definir uno de estos objetos y donde colocamos la imagen 2D del mismo:
Supongamos que queremos añadir el objeto 'Tarjeta' a nuestra aventura. Ya tenemos un fichero .act que
representa una tarjeta y también hemos dibujado una imagen de 32x32 de nuestra tarjeta:
Imagen de 32x32
tarjeta.act
Ahora vamos a darle un número a este objeto, por ejemplo el 2, ya que el número 1 ya está ocupado por la
caja (por eso se llama '1_caja.act') y que no podemos borrar. Renombramos el archivo .act de la tarjeta al nombre
'2_tarjeta.act' y lo copiamos en la carpeta 'Objetos' de Entidad 3D.
Fichero '2_tarjeta.act' en la carpeta 'Objetos'
Seguidamente utilizamos nuestro editor de imágenes preferido (tipo Gimp, Adobe Photoshop o parecido) y creamos una imagen de 32x32 pixels
del icono de nuestro objeto (en este caso una tarjeta) y lo copiamos con el nombre PrimerNivel_objeto_02.bmp en la
carpeta 'bmp\HUD\objetos' de Entidad 3D.
Fichero PrimerNivel_objeto_02.bmp
Opcionalmente podemos definir un fichero 'Alpha' de transparencia para este objeto si queremos crear una máscara de recorte o transparencia
para el icono del objeto.
Fichero PrimerNivel_a_objeto_02.bmp
Para conseguir recortar el fondo original del icono:
También opcionalmente podemos definir una imagen de mayor tamaño que represente a nuestro objeto en el inventario de objetos del jugador.
Para ello deberemos copiar en la misma carpeta el siguiente fichero gráfico de cualquier tamaño mientras no sobrepase los límites de la pantalla.
Fichero PrimerNivel_objeto_03_imagen.bmp (en este caso para el objeto número 3)
Fichero PrimerNivel_a_objeto_03_imagen.bmp
Resultado cuando el jugador seleccione el objeto número 3 del juego
(en este caso la pócima, el primer objeto del inventario)
Recuerda que PrimerNivel es el nombre del primer nivel de nuestro juego para que los iconos e imágenes de los
objetos aparezcan en ese juego en concreto.
De esta forma, mediante el nombre del fichero .ACT y los ficheros gráficos .BMP, dispondremos de una representación gráfica automática del
inventario de objetos del jugador, de manera que nosotros no tengamos que hacer nada en especial para controlar lo qué se muestra, donde
se muestra o cuando se muestra.
Ahora vamos a ver como situamos, en nuestro escenario, uno de estos objetos que hemos definido para que el jugador pueda recogerlo
con sólo acercarse a él:
Vamos a nuestro escenario en 'World Editor' y añadimos una entidad ItemObject en la posición que queremos
que aparezca nuestra tarjeta. Una vez colocada, edita las propiedades de esta entidad y rellena el parámetro
'ActorFile' con '2_tarjeta.act' (sin las comillas). También puedes rellenar el parámetro 'ObjectName' con un
nombre para este objeto, que podría ser 'Tarjeta' o 'La llave' o lo que quieras, este nombre sólo lo utiliza
Entidad 3D de forma automática para ponerlo en pantalla cuando estemos recogiendo el objeto.
Sólo nos queda compilar el nivel, ver si nuestra tarjeta aparece y probar a ver si nuestro personaje recoge el objeto.
La tarjeta en el escenario
Una vez recogida, la tarjeta aparecerá automáticamente en el inventario del jugador
Si queremos podemos añadir en nuestro escenario múltiples objetos iguales, procediendo de la misma forma: añadir entidad 'ItemObject'
con 'ActorFile'= 2_tarjeta.act (en el caso de nuestra tarjeta). Al añadir un segundo objeto igual,
no es necesario volver a rellenar el parámetro 'ObjectName'.
Pues supongo que ya te podrás imaginar como definir un tercer objeto para nuestro sistema ......
Colocando objetos no recogibles:
En ocasiones nos puede interesar colocar un objeto representado por un fichero
.act, pero que simplemente esté ahí y que no sea un objeto que el jugador lo pueda recoger.
Pues esto es tan simple como añadir una entidad 'ItemObject' indicando en el parámetro 'ActorFile' el
nombre del fichero .act que lo representa, en el parámetro 'Numero_objeto' el número de objeto que le
corresponda y en el parámetro 'Catch' el valor 'False'.
Este fichero .act también debe existir en la carpeta 'Objetos'.
Objetos sin nombres de .act modificados:
A partir de la versión 4.7c de Entidad 3D, ya no es necesario que los nombres de los ficheros .act de los
objetos comiencen con el número del objeto.
Es decir, para el objeto del ejemplo '2_tarjeta.act' bastaría indicar en el parámetro 'ActorFile' de la
entidad 'ItemObject' de ese objeto, el nombre 'tarjeta.act' y en el parámetro 'Numero_objeto' el valor 2.
Evidentemente tendría que existir el fichero 'tarjeta.act' (sin números delante) en la carpeta 'Objetos'.
Consulta la sección de la entidad 'ItemObject' para conocer a fondo todos sus parámetros.
Para hacer aparecer / desaparecer el inventario de objetos en pantalla, el jugador debe usar la tecla ' i '.