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