Tiles

Como ya debes saber, puedes añadir tiles a los cuartos. Una tile es una parte de un fondo. En realidad, una tile es simplemente una imagen visible: no reaccionan ante eventos y no generan colisiones. Como resultado de esto, las tiles funcionan mucho más rápido que los objetos. Así pues, todo lo que no sufra colisiones o no reaccione ante eventos funcionará mucho mejor si lo haces con tiles. Incluso a veces es mejor utilizar un tile para mostrar los gráficos y poner por debajo un objeto invisible que se encargue de las colisiones. Para definir un tile necesitas un fondo. Sobre este fondo indicas la esquina superior (top) izquierda (left), la anchura (width) y la altura (height) de un rectángulo. La parte del fondo que queda dentro de este rectángulo pasa a ser una tile.

Puedes añadir tiles al diseñar el room, pero también puedes hacerlo mientras el juego se ejecuta. Puedes cambiar su posición, escalarlas o hacerlas transparentes. Una tile tiene las propiedades siguientes:

Para cambiar las propiedades de una tile debes conocer su id. Cuando creas tiles desde el editor de rooms la id se muestra en la barra inferior de información. Pero también existen funciones para conocer la id de una tile en una posición particular.

Las funciones siguientes sirven para manejar tiles:

tile_add(background,left,top,width,height,x,y,depth) Añade una nueva tile al cuarto con las propiedades indicadas. Esta función devuelve la id de la nueva tile que se puede usar más tarde en el resto de funciones.
tile_delete(id) Elimina el tile con la id especificada.
tile_exists(id) Devuelve si existe una tile con la id especificada.

 

Las funciones siguientes nos dan información sobre las tiles:


tile_get_x(id) Devuelve la posición x de la tile con la id especificada.
tile_get_y(id) Devuelve la posición y de la tile con la id especificada.
tile_get_left(id) Devuelve el valor de la propiedad left  (izquierda) de la tile con la id especificada.
tile_get_top(id) Devuelve el valor de la propiedad top (arriba) de la tile con la id especificada.
tile_get_width(id) Devuelve la anchura de la tile con la id especificada.
tile_get_height(id) Devuelve la altura de la tile con la id especificada.
tile_get_depth(id) Devuelve la profundidad de la tile con la id especificada.
tile_get_visible(id) Devuelve si la tile con la id especificada es visible o no.
tile_get_xscale(id) Devuelve el factor horizontal de escalado de la tile con la id especificada.
tile_get_yscale(id) Devuelve el factor vertical de escalado de la tile con la id especificada.
tile_get_background(id) Devuelve el fondo de la tile con la id especificada.
tile_get_blend(id) Devuelve el color de teñido de la tile con la id especificada.
tile_get_alpha(id) Devuelve el factor de transparencia de la tile con la id especificada.

Las funciones siguientes sirven para manipular las propiedades de las tiles:

 

tile_set_position(id,x,y) Coloca la tile con la id especificada en la posición x,y.
tile_set_region(id,left,top,width,height) Cambia la región del tile con la id especificada sobre su fondo.
tile_set_background(id,background) Cambia el fondo de la tile con la id especificada.
tile_set_visible(id,visible) Cambia la visibilidad de la tile con la id especificada.
tile_set_depth(id,depth) Cambia la profundidad de la tile con la id especificada.
tile_set_scale(id,xscale,yscale) Cambia los factores de escala de la tile con la id especificada.
tile_set_blend(id,color) Cambia el color de teñido de la tile con la id especificada. Sólo disponible en la versión registrada!
tile_set_alpha(id,alpha) Cambia la transparencia de la tile con la id especificada.

Las funciones siguientes manejan capas de tiles, es decir, grupos de tiles que tienen la misma profundidad:

tile_layer_hide(depth) Oculta todas las tiles con la profundidad indicada.
tile_layer_show(depth) Muestra todas las tiles con la profundidad indicada.
tile_layer_delete(depth) Elimina todas las tiles con la profundidad indicada..
tile_layer_shift(depth,x,y) Mueve todas las tiles con la profundidad indicada siguiendo el vector (x,y). Esta función se puede usar para capas de tiles móviles.
tile_layer_find(depth,x,y) Devuelve la id de la tile con la profundidad indicada que se encuentra en la posición (x,y). Si no se encuentra ninguna tile la función devuelve -1. Cuando se encuentran varias tiles en esa posición con la misma profundidad se devuelve la primera.
tile_layer_delete_at(depth,x,y) Elimina la tile con la profundidad indicada que se encuentra en la posición (x,y). Si se encentran varias tiles en esa posición y con la profundidad indicada se eliminan todas.
tile_layer_depth(depth,newdepth) Cambia la profundidad de todas las tiles con la profundidad indicada a la nueva profundidad. Es decir, con esta función puedes mover capas enteras de tiles a otra profundidad.