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' tienen que estar en la carpeta 'Objects' 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 'Objects', 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, el juego de ejemplo dejará de funcionar. Si haces esto al menos deja el fichero '1_caja.act' ya que siempre lo necesita 'Entidad 3D'. Si borras '1_caja.act', tu juego ni siquiera comenzará.

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 es 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 'Objects' de 'Entidad 3D'.


Fichero '2_tarjeta.act' en la carpeta 'Objects'


Seguidamente utilizamos nuestro editor de imágenes preferido (tipo Gimp, Adobe Photoshop o parecido) y abrimos el fichero 'objetos_distintos.bmp' que encontraremos en la carpeta 'Bmp' de 'Entidad 3D'.
Lo que contiene este fichero son todas las representaciones 2D de un tamaño de 32x32 de todos los objetos distintos que tengamos. A medida que los vayamos diseñando los tenemos que ir 'pegando' en esta imagen BMP de arriba a abajo, pegados a la izquierda y sin separación entre ellos. Por lo tanto el primer cuadro de 32x32 en la parte superior izquierda pertenecerá al objeto número 1, que es precisamente la caja (1_caja.act) y para el objeto número 2, que es el objeto que estamos preparando, pondríamos nuestra imagen de 32x32 justo debajo.


Fichero 'objetos_distintos.bmp' en la carpeta 'Bmp'


Si queremos que este fichero de objetos sea particular de un juego, tendremos que crear un fichero igual que el anterior pero con el nombre PrimerNivel_objetos_distintos.bmp, siendo 'PrimerNivel' en nombre del primer nivel de nuestro juego. Si hacemos esto siempre tendremos que trabajar sobre este fichero para que los imágenes de los objetos aparezcan en ese juego en concreto.

De esta forma, mediante el nombre del fichero .act y el orden de imágenes en el fichero 'objetos_distintos.bmp', 'Entidad 3D' es capaz de relacionar un objeto .act con su imagen para el inventario, de manera que nosotros no tengamos que hacer nada más.

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 aparece 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 también 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' con su 'ActorFile' con el nombre del fichero .act que lo representa, sin números delante ni nada, el nombre tal cual. Este fichero .act también ha de estar en la carpeta 'Objects'.






» 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'.