TUTORIAL WORLDCRAFT:
ENTIDADES Y OBJETOS MÓVILES (I)

Hasta ahora hemos aprendido una parte, la más sencilla, de lo que puede hacerse con entidades; colocar luces, monstruos, etc. Pero hay más. ¿Cómo construir puertas? ¿Juegos de palancas? ¿Ascensores...? Pues esto es lo que veremos a partir de ahora.

Antes de seguir, una pequeña explicación teórica. En los capítulos anteriores hemos trabajado con bloques y entidades por separado. Pero para crear nuestros objetos móviles tendremos que hacer algo nuevo; convertir bloques en entidades —en realidad, la traducción literal sería "atar bloques a entidades", cosa que, al menos para mi gusto, suena muy confusa—.

Esto es sencillo; preparamos a nuestro gusto el bloque —o grupo de bloques— que queramos transformar, lo seleccionamos y, en cualquiera de las vistas en 2D, pulsamos sobre él con el botón derecho del ratón. En el menú emergente escogemos la opción Tie to Entity..., y ya lo tenemos. En fin, ahora lo veremos en un ejemplo.

CREANDO UNA PUERTA:

Volvamos a nuestro feo mapa de pruebas, el de las dos habitaciones conectadas por el pasillo. Vamos a colocar una puerta, que se abra cuando nos acerquemos a ella.

Para ello, creamos un bloque de 32 unidades de grosor, justo en el centro del corredor; dicho bloque lo cerrará completamente, desde el suelo al techo. A continuación, podemos asignarle una textura metálica; yo, por ejemplo, me he decantado por comp1_1:

El bloque que formará la puerta

Sí, se ve macizo e imponente... Pero bueno, a lo que vamos; ahora seleccionemos el brush que acabamos de construir. Aparecerá marcado en rojo, como de costumbre —ver la imagen de arriba—. Luego, como ya comenté al principio de este capítulo, clicamos sobre él con el botón derecho del ratón, de modo que aparezca el menú contextual... Y en él seleccionamos la opción de Tie to Entity.

Esto no termina aquí, vaya. Ahora tendremos un cuadro de diálogo, en el que deberemos especificar las propiedades de la entidad que vamos a crear con este bloque.

¿Dijimos una puerta, no? Pues lo primero es modificar el valor de la etiqueta Class, en la pestaña Class Info. Por defecto, éste será func_wall, que haría referencia a un bloque normal, sin características especiales; evidentemente no nos interesa, así que lo cambiamos por func_door, un poco más arriba en la lista emergente...

Propiedades del bloque-entidad que hará de puerta

Y mágicamente nos aparecerá una lista con las propiedades de esa puerta que podemos ajustar, como ya hicimos anteriormente con las antorchas (véase el capítulo anterior, Nuestro primer mapa II: Salas, pasillos, estructuras).

Bien, como la puerta se abrirá hacia arriba, en el recuadro de Angle ponemos el valor Up; aquí también se admiten valores numéricos (de entre 0 y 360), y de hecho podríamos usar 90 o 270 si quisiéramos que la puerta se apartase hacia un lado del pasillo; pero ahora no nos interesan.

El atributo Name lo dejaremos en blanco; en realidad sólo deberíamos preocuparnos por él si quisiéramos que la puerta se abriese con un botón o un activador, y no es éste el caso. Speed indica la velocidad a la que se moverá nuestra puerta, en unidades por segundo; un valor entre 100 y 150 sería bastante adecuado.

En Sound escogeremos el sonido que hará el bloque al desplazarse. No hay mucho dónde elegir, es cierto, y teniendo en cuenta que la nuestra será una puerta metálica, machine quedará muy convincente. Otro sonido que probablemente daría buenos resultados es el llamado screechy metal.

Delay before close indica precisamente eso; el tiempo que la puerta permanecerá abierta antes de volver a cerrarse. El valor por defecto es de 4 (cuatro segundos), pero podemos cambiarlo a voluntad.

Hay otros atributos interesantes, como Damage inflicted when blocked —ideal para aniquilar a jugadores desprevenidos—, o Message when triggered —muestra un mensaje en pantalla al activar el objeto móvil en cuestión—; pero ya los comentaremos más adelante. Ahora podéis compilar el mapa y ver nuestra puerta en acción...

AJUSTANDO EL MOVIMIENTO; EL ATRIBUTO LIP:

Os habréis dado cuenta que antes, al preparar nuestra puerta, hemos pasado de puntillas sobre un atributo llamado Lip, del que no he comentado ni media palabra... No obstante tiene su importancia, así que aquí explicaré brevemente cuál es su cometido.

Bien, Lip nos servirá para modificar la distancia a la que se desplazará nuestro bloque móvil —una puerta, un elevador, etc—. Si, como es habitual, tiene un valor de 0 (cero), éste recorre una distancia equivalente a su propio tamaño.

¿Qué quiero decir? Sencillo. Nuestra puerta anterior era un bloque de 128 unidades de alto y otras tantas de ancho, por lo que su movimiento normal serían precisamente 128 unidades —en verdad son unas pocas menos, dado que las puertas suelen quedarse sobresaliendo ligeramente de las paredes o techos adyacentes—. Pero esto puede cambiarse.

Por ejemplo, asignándole a Lip un valor de 32, la puerta se desplazará 32 unidades menos de lo que lo haría normalmente. Con un valor de 64 serían 64 unidades, lo que en la práctica equivaldría a dejar abierta la mitad del pasillo solamente. Podríamos utilizar números negativos (-32, -64, etc), con el efecto contrario; añadir movimiento extra.

¿Y si tuviéramos una puerta rectangular de 128 unidades de altura y 64 de ancho? Con un valor de 0 en Lip sucedería lo siguiente: si dicha puerta se abriera hacia arriba o hacia abajo, se desplazaría 128 unidades —un poquito menos, en realidad—. En cambio, si se abriese lateralmente, serían 64.

En fin, no se trata de una opción muy intuitiva, pero tampoco resulta difícil entender cómo funciona. Y si no, siempre queda el clásico "ensayo y error" hasta lograr los resultados deseados.

PUERTAS DOBLES:

Y ahora os preguntaréis, ¿y las puertas de doble hoja? No entrañan mayor dificultad; se trata de dos puertas simples, como la que acabamos de construir, que se abren en ángulos opuestos. No hace falta nada más; las entidades de tipo func_door activan automáticamente a otras de la misma clase que se encuentren junto a ellas. No obstante, esto podría evitarse editando sus propiedades; en la pestaña flags, activamos la casilla Don't link.


Cumple con el estándar HTMLCumple con el estándar CSSApta para cualquier navegador

Podéis copiar libremente cualquier contenido de esta página. Si se trata del texto o las imágenes, mencionad la fuente (www.arcades3d.net)...