TileMap

Obsoleto: Use multiple TileMapLayer nodes instead. To convert a TileMap to a set of TileMapLayer nodes, open the TileMap bottom panel with the node selected, click the toolbox icon in the top-right corner and choose 'Extract TileMap layers as individual TileMapLayer nodes'.

Hereda: Node2D < CanvasItem < Node < Object

Nodo para mapas basados en tiles 2D.

Descripción

Nodo para mapas 2D basados en tiles. Los Tilemaps usan un TileSet que contiene una lista de tiles que se utilizan para crear mapas basados en cuadrículas. Un TileMap puede tener varias capas, colocando tiles uno encima del otro.

Por razones de rendimiento, todas las actualizaciones de TileMap se procesan por lotes al final de un fotograma. Notablemente, esto significa que los tiles de escena de un TileSetScenesCollectionSource pueden inicializarse después de su padre. Esto solo se pone en cola cuando está dentro del árbol de la escena.

Para forzar una actualización antes, llama a update_internals().

Nota: Por razones de rendimiento y compatibilidad, las coordenadas serializadas por TileMap están limitadas a enteros con signo de 16 bits, es decir, el rango para las coordenadas X e Y es de -32768 a 32767. Al guardar los datos del tile, los tiles fuera de este rango se ajustan.

Tutoriales

Propiedades

bool

collision_animatable

false

VisibilityMode

collision_visibility_mode

0

VisibilityMode

navigation_visibility_mode

0

int

rendering_quadrant_size

16

TileSet

tile_set

Métodos

void

_tile_data_runtime_update(layer: int, coords: Vector2i, tile_data: TileData) virtual

bool

_use_tile_data_runtime_update(layer: int, coords: Vector2i) virtual

void

add_layer(to_position: int)

void

clear()

void

clear_layer(layer: int)

void

erase_cell(layer: int, coords: Vector2i)

void

fix_invalid_tiles()

void

force_update(layer: int = -1)

int

get_cell_alternative_tile(layer: int, coords: Vector2i, use_proxies: bool = false) const

Vector2i

get_cell_atlas_coords(layer: int, coords: Vector2i, use_proxies: bool = false) const

int

get_cell_source_id(layer: int, coords: Vector2i, use_proxies: bool = false) const

TileData

get_cell_tile_data(layer: int, coords: Vector2i, use_proxies: bool = false) const

Vector2i

get_coords_for_body_rid(body: RID)

int

get_layer_for_body_rid(body: RID)

Color

get_layer_modulate(layer: int) const

String

get_layer_name(layer: int) const

RID

get_layer_navigation_map(layer: int) const

int

get_layer_y_sort_origin(layer: int) const

int

get_layer_z_index(layer: int) const

int

get_layers_count() const

RID

get_navigation_map(layer: int) const

Vector2i

get_neighbor_cell(coords: Vector2i, neighbor: CellNeighbor) const

TileMapPattern

get_pattern(layer: int, coords_array: Array[Vector2i])

Array[Vector2i]

get_surrounding_cells(coords: Vector2i)

Array[Vector2i]

get_used_cells(layer: int) const

Array[Vector2i]

get_used_cells_by_id(layer: int, source_id: int = -1, atlas_coords: Vector2i = Vector2i(-1, -1), alternative_tile: int = -1) const

Rect2i

get_used_rect() const

bool

is_cell_flipped_h(layer: int, coords: Vector2i, use_proxies: bool = false) const

bool

is_cell_flipped_v(layer: int, coords: Vector2i, use_proxies: bool = false) const

bool

is_cell_transposed(layer: int, coords: Vector2i, use_proxies: bool = false) const

bool

is_layer_enabled(layer: int) const

bool

is_layer_navigation_enabled(layer: int) const

bool

is_layer_y_sort_enabled(layer: int) const

Vector2i

local_to_map(local_position: Vector2) const

Vector2i

map_pattern(position_in_tilemap: Vector2i, coords_in_pattern: Vector2i, pattern: TileMapPattern)

Vector2

map_to_local(map_position: Vector2i) const

void

move_layer(layer: int, to_position: int)

void

notify_runtime_tile_data_update(layer: int = -1)

void

remove_layer(layer: int)

void

set_cell(layer: int, coords: Vector2i, source_id: int = -1, atlas_coords: Vector2i = Vector2i(-1, -1), alternative_tile: int = 0)

void

set_cells_terrain_connect(layer: int, cells: Array[Vector2i], terrain_set: int, terrain: int, ignore_empty_terrains: bool = true)

void

set_cells_terrain_path(layer: int, path: Array[Vector2i], terrain_set: int, terrain: int, ignore_empty_terrains: bool = true)

void

set_layer_enabled(layer: int, enabled: bool)

void

set_layer_modulate(layer: int, modulate: Color)

void

set_layer_name(layer: int, name: String)

void

set_layer_navigation_enabled(layer: int, enabled: bool)

void

set_layer_navigation_map(layer: int, map: RID)

void

set_layer_y_sort_enabled(layer: int, y_sort_enabled: bool)

void

set_layer_y_sort_origin(layer: int, y_sort_origin: int)

void

set_layer_z_index(layer: int, z_index: int)

void

set_navigation_map(layer: int, map: RID)

void

set_pattern(layer: int, position: Vector2i, pattern: TileMapPattern)

void

update_internals()


Señales

changed() 🔗

Emitida cuando el TileSet de este TileMap cambia.


Enumeraciones

enum VisibilityMode: 🔗

VisibilityMode VISIBILITY_MODE_DEFAULT = 0

Usa la configuración de depuración para determinar la visibilidad.

VisibilityMode VISIBILITY_MODE_FORCE_HIDE = 2

Siempre ocultar.

VisibilityMode VISIBILITY_MODE_FORCE_SHOW = 1

Siempre mostrar.


Descripciones de Propiedades

bool collision_animatable = false 🔗

  • void set_collision_animatable(value: bool)

  • bool is_collision_animatable()

Si está habilitado, el TileMap verá sus colisiones sincronizadas con el tick de la física y cambiará su tipo de colisión de estático a cinemático. Esto es necesario para crear plataformas móviles basadas en TileMap.

Nota: Habilitar collision_animatable puede tener un pequeño impacto en el rendimiento, solo hazlo si el TileMap se está moviendo y tiene tiles que colisionan.


VisibilityMode collision_visibility_mode = 0 🔗

Muestra u oculta las formas de colisión del TileMap. Si se establece en VISIBILITY_MODE_DEFAULT, esto depende de la configuración de depuración de visualización de colisiones.


VisibilityMode navigation_visibility_mode = 0 🔗

Muestra u oculta las mallas de navegación del TileMap. Si se establece en VISIBILITY_MODE_DEFAULT, esto depende de la configuración de depuración de visualización de navegación.


int rendering_quadrant_size = 16 🔗

  • void set_rendering_quadrant_size(value: int)

  • int get_rendering_quadrant_size()

El tamaño del cuadrante del TileMap. Un cuadrante es un grupo de tiles que se dibujan juntos en un solo elemento de lienzo, con fines de optimización. rendering_quadrant_size define la longitud del lado de un cuadrado, en el sistema de coordenadas del mapa, que forma el cuadrante. Por lo tanto, el tamaño de cuadrante predeterminado agrupa 16 * 16 = 256 tiles.

El tamaño del cuadrante no se aplica en las capas ordenadas en Y, ya que los tiles se agrupan por posición Y en ese caso.

Nota: Como los cuadrantes se crean de acuerdo con el sistema de coordenadas del mapa, la "forma cuadrada" del cuadrante podría no parecerse a un cuadrado en el sistema de coordenadas local del TileMap.


TileSet tile_set 🔗

El TileSet utilizado por este TileMap. Las texturas, colisiones y el comportamiento adicional de todos los tiles disponibles se almacenan aquí.


Descripciones de Métodos

void _tile_data_runtime_update(layer: int, coords: Vector2i, tile_data: TileData) virtual 🔗

Se llama con un objeto TileData que está a punto de ser utilizado internamente por el TileMap, lo que permite su modificación en tiempo de ejecución.

Este método solo se llama si _use_tile_data_runtime_update() está implementado y devuelve true para el tile dado coords y layer.

Advertencia: Los subrecursos del objeto tile_data son los mismos que los del TileSet. Modificarlos podría afectar a todo el TileSet. En su lugar, asegúrate de duplicar esos recursos.

Nota: Si las propiedades del objeto tile_data deben cambiar con el tiempo, utiliza notify_runtime_tile_data_update() para notificar al TileMap que necesita una actualización.


bool _use_tile_data_runtime_update(layer: int, coords: Vector2i) virtual 🔗

Debería devolver true si el tile en las coordenadas coords en la capa layer requiere una actualización en tiempo de ejecución.

Advertencia: Asegúrate de que esta función solo devuelva true cuando sea necesario. Cualquier tile procesado en tiempo de ejecución sin necesidad de ello implicará una penalización significativa en el rendimiento.

Nota: Si el resultado de esta función debe cambiar, utiliza notify_runtime_tile_data_update() para notificar al TileMap que necesita una actualización.


void add_layer(to_position: int) 🔗

Añade una capa en la posición dada to_position en el array. Si to_position es negativo, la posición se cuenta desde el final, con -1 añadiendo la capa al final del array.


void clear() 🔗

Limpia todas las celdas.


void clear_layer(layer: int) 🔗

Limpia todas las celdas en la capa dada.

Si layer es negativo, se accede a las capas desde la última.


void erase_cell(layer: int, coords: Vector2i) 🔗

Borra la celda en la capa layer en las coordenadas coords.

Si layer es negativo, se accede a las capas desde la última.


void fix_invalid_tiles() 🔗

Despeja las celdas que no existen en el tileset.


void force_update(layer: int = -1) 🔗

Obsoleto: Use notify_runtime_tile_data_update() and/or update_internals() instead.

Fuerza la actualización del TileMap y la capa layer.


int get_cell_alternative_tile(layer: int, coords: Vector2i, use_proxies: bool = false) const 🔗

Devuelve el ID alternativo del tile de la celda en la capa layer en coords.

Si use_proxies es false, ignora los proxies del tile del TileSet, devolviendo el identificador alternativo sin procesar. Véase TileSet.map_tile_proxy().

Si layer es negativo, se accede a las capas desde la última.


Vector2i get_cell_atlas_coords(layer: int, coords: Vector2i, use_proxies: bool = false) const 🔗

Devuelve el ID de las coordenadas del atlas de tiles de la celda en la capa layer en las coordenadas coords. Devuelve Vector2i(-1, -1) si la celda no existe.

Si use_proxies es false, ignora los proxies del tile del TileSet, devolviendo el identificador de coordenadas del atlas sin procesar. Véase TileSet.map_tile_proxy().

Si layer es negativo, se accede a las capas desde la última.


int get_cell_source_id(layer: int, coords: Vector2i, use_proxies: bool = false) const 🔗

Devuelve el ID de la fuente del tile de la celda en la capa layer en las coordenadas coords. Devuelve -1 si la celda no existe.

Si use_proxies es false, ignora los proxies del tile del TileSet, devolviendo el identificador de la fuente sin procesar. Véase TileSet.map_tile_proxy().

Si layer es negativo, se accede a las capas desde la última.


TileData get_cell_tile_data(layer: int, coords: Vector2i, use_proxies: bool = false) const 🔗

Devuelve el objeto TileData asociado con la celda dada, o null si la celda no existe o no es una TileSetAtlasSource.

Si layer es negativo, se accede a las capas desde la última.

func get_clicked_tile_power():
    var celda_pulsada = tile_map.local_to_map(tile_map.get_local_mouse_position())
    var datos = tile_map.get_cell_tile_data(0, celda_pulsada)
    if datos:
        return datos.get_custom_data("power")
    else:
        return 0

Si use_proxies es false, ignora los proxies del tile del TileSet. Véase TileSet.map_tile_proxy().


Vector2i get_coords_for_body_rid(body: RID) 🔗

Devuelve las coordenadas del tile para el RID del cuerpo físico dado. Dicho RID se puede obtener de KinematicCollision2D.get_collider_rid(), al colisionar con un tile.


int get_layer_for_body_rid(body: RID) 🔗

Devuelve la capa del tilemap del tile para el RID del cuerpo físico dado. Dicho RID se puede obtener de KinematicCollision2D.get_collider_rid(), al colisionar con un tile.


Color get_layer_modulate(layer: int) const 🔗

Devuelve el modulate de una capa del TileMap.

Si layer es negativo, se accede a las capas desde la última.


String get_layer_name(layer: int) const 🔗

Devuelve el nombre de una capa del TileMap.

Si layer es negativo, se accede a las capas desde la última.


RID get_layer_navigation_map(layer: int) const 🔗

Devuelve el RID del mapa de navegación NavigationServer2D asignado a la capa layer del TileMap especificado.

Por defecto, el TileMap utiliza el mapa de navegación World2D por defecto para la primera capa del TileMap. Para cada capa adicional del TileMap, se crea un nuevo mapa de navegación para la capa adicional.

Para hacer que NavigationAgent2D cambie entre los mapas de navegación de las capas del TileMap, utiliza NavigationAgent2D.set_navigation_map() con el mapa de navegación recibido de get_layer_navigation_map().

Si layer es negativo, se accede a las capas desde la última.


int get_layer_y_sort_origin(layer: int) const 🔗

Devuelve el origen de ordenamiento Y de una capa del TileMap.

Si layer es negativo, se accede a las capas desde la última.


int get_layer_z_index(layer: int) const 🔗

Devuelve el valor del índice Z de una capa del TileMap.

Si layer es negativo, se accede a las capas desde la última.


int get_layers_count() const 🔗

Devuelve el número de capas en el TileMap.


RID get_navigation_map(layer: int) const 🔗

Obsoleto: Use get_layer_navigation_map() instead.

Devuelve el RID del mapa de navegación NavigationServer2D asignado a la capa layer del TileMap especificado.


Vector2i get_neighbor_cell(coords: Vector2i, neighbor: CellNeighbor) const 🔗

Devuelve la celda vecina a la que se encuentra en las coordenadas coords, identificada por la dirección neighbor. Este método tiene en cuenta los diferentes diseños que puede tener un TileMap.


TileMapPattern get_pattern(layer: int, coords_array: Array[Vector2i]) 🔗

Crea un nuevo TileMapPattern a partir de la capa y el conjunto de celdas indicados.

Si layer es negativo, se accede a las capas desde la última.


Array[Vector2i] get_surrounding_cells(coords: Vector2i) 🔗

Devuelve la lista de todas las celdas vecinas a la que se encuentra en coords.


Array[Vector2i] get_used_cells(layer: int) const 🔗

Devuelve un array Vector2i con las posiciones de todas las celdas que contienen un tile en la capa dada. Se considera que una celda está vacía si su identificador de fuente es igual a -1, sus identificadores de coordenadas del atlas son Vector2(-1, -1) y su identificador alternativo es -1.

Si layer es negativo, se accede a las capas desde la última.


Array[Vector2i] get_used_cells_by_id(layer: int, source_id: int = -1, atlas_coords: Vector2i = Vector2i(-1, -1), alternative_tile: int = -1) const 🔗

Devuelve un array de Vector2i con las posiciones de todas las celdas que contienen un tile en la capa dada. Los tiles pueden filtrarse según su fuente (source_id), sus coordenadas de atlas (atlas_coords) o su ID alternativo (alternative_tile).

Si un parámetro tiene su valor establecido en el valor predeterminado, este parámetro no se utiliza para filtrar una celda. Por lo tanto, si todos los parámetros tienen su respectivo valor predeterminado, este método devuelve el mismo resultado que get_used_cells().

Se considera que una celda está vacía si su identificador de fuente es igual a -1, su identificador de coordenadas de atlas es Vector2(-1, -1) y su identificador alternativo es -1.

Si layer es negativo, se accede a las capas desde la última.


Rect2i get_used_rect() const 🔗

Devuelve un rectángulo que encierra los tiles usados (no vacíos) del mapa, incluyendo todas las capas.


bool is_cell_flipped_h(layer: int, coords: Vector2i, use_proxies: bool = false) const 🔗

Devuelve true si la celda en la capa layer en las coordenadas coords se invierte horizontalmente. El resultado solo es válido para fuentes de atlas.


bool is_cell_flipped_v(layer: int, coords: Vector2i, use_proxies: bool = false) const 🔗

Devuelve true si la celda en la capa layer en las coordenadas coords se invierte verticalmente. El resultado solo es válido para fuentes de atlas.


bool is_cell_transposed(layer: int, coords: Vector2i, use_proxies: bool = false) const 🔗

Devuelve true si la celda en la capa layer en las coordenadas coords está transpuesta. El resultado solo es válido para fuentes de atlas.


bool is_layer_enabled(layer: int) const 🔗

Devuelve si una capa está habilitada.

Si layer es negativo, se accede a las capas desde la última.


bool is_layer_navigation_enabled(layer: int) const 🔗

Devuelve si la generación de regiones de navegación incorporada de una capa está habilitada.


bool is_layer_y_sort_enabled(layer: int) const 🔗

Devuelve si una capa ordena sus tiles en el eje Y.

Si layer es negativo, se accede a las capas desde la última.


Vector2i local_to_map(local_position: Vector2) const 🔗

Devuelve las coordenadas del mapa de la celda que contiene la local_position dada. Si local_position está en coordenadas globales, considera usar Node2D.to_local() antes de pasarla a este método. Véase también map_to_local().


Vector2i map_pattern(position_in_tilemap: Vector2i, coords_in_pattern: Vector2i, pattern: TileMapPattern) 🔗

Devuelve para la coordenada dada coords_in_pattern en un TileMapPattern las coordenadas de celda correspondientes si el patrón se pegó en las coordenadas position_in_tilemap (ver set_pattern()). Esta asignación es necesaria ya que en las formas de tile de medio desplazamiento, la asignación podría no funcionar calculando position_in_tile_map + coords_in_pattern.


Vector2 map_to_local(map_position: Vector2i) const 🔗

Devuelve la posición centrada de una celda en el espacio de coordenadas local del TileMap. Para convertir el valor devuelto en coordenadas globales, usa Node2D.to_global(). Véase también local_to_map().

Nota: Esto puede no corresponder a la posición visual del tile, es decir, ignora la propiedad TileData.texture_origin de los tiles individuales.


void move_layer(layer: int, to_position: int) 🔗

Mueve la capa en el índice layer a la posición dada to_position en el array.


void notify_runtime_tile_data_update(layer: int = -1) 🔗

Notifica al nodo TileMap que las llamadas a _use_tile_data_runtime_update() o _tile_data_runtime_update() conducirán a resultados diferentes. Esto, por lo tanto, activará una actualización de TileMap.

Si se proporciona layer, solo notifica los cambios para la capa dada. Proporcionar el argumento layer (cuando corresponda) suele ser preferible por razones de rendimiento.

Advertencia: La actualización del TileMap es computacionalmente costosa y puede afectar el rendimiento. Intenta limitar el número de llamadas a esta función para evitar actualizaciones innecesarias.

Nota: Esto no activa una actualización directa del TileMap, la actualización se realizará al final del fotograma como de costumbre (a menos que llames a update_internals()).


void remove_layer(layer: int) 🔗

Elimina la capa en el índice layer.


void set_cell(layer: int, coords: Vector2i, source_id: int = -1, atlas_coords: Vector2i = Vector2i(-1, -1), alternative_tile: int = 0) 🔗

Establece los identificadores de tile para la celda en la capa layer en las coordenadas coords. Cada tile del TileSet se identifica mediante tres partes:

Si source_id se establece en -1, atlas_coords en Vector2i(-1, -1) o alternative_tile en -1, la celda se borrará. Una celda borrada obtiene todos sus identificadores automáticamente establecidos en sus respectivos valores no válidos, a saber, -1, Vector2i(-1, -1) y -1.

Si layer es negativo, se accede a las capas desde la última.


void set_cells_terrain_connect(layer: int, cells: Array[Vector2i], terrain_set: int, terrain: int, ignore_empty_terrains: bool = true) 🔗

Actualiza todas las celdas en el array de coordenadas cells para que utilicen el terrain dado para el terrain_set dado. Si una celda actualizada tiene el mismo terreno que una de sus celdas vecinas, esta función intenta unir las dos. Esta función podría actualizar los tiles vecinos si es necesario para crear transiciones de terreno correctas.

Si ignore_empty_terrains es true, los terrenos vacíos se ignorarán al intentar encontrar el tile que mejor se adapte a las restricciones de terreno dadas.

Si layer es negativo, se accede a las capas desde la última.

Nota: Para que funcione correctamente, este método requiere que el TileSet de TileMap tenga terrenos configurados con todas las combinaciones de terreno necesarias. De lo contrario, puede producir resultados inesperados.


void set_cells_terrain_path(layer: int, path: Array[Vector2i], terrain_set: int, terrain: int, ignore_empty_terrains: bool = true) 🔗

Actualiza todas las celdas en el array de coordenadas path para que utilicen el terrain dado para el terrain_set dado. La función también conectará dos celdas sucesivas en la ruta con el mismo terreno. Esta función podría actualizar los tiles vecinos si es necesario para crear transiciones de terreno correctas.

Si ignore_empty_terrains es true, los terrenos vacíos se ignorarán al intentar encontrar el tile que mejor se adapte a las restricciones de terreno dadas.

Si layer es negativo, se accede a las capas desde la última.

Nota: Para que funcione correctamente, este método requiere que el TileSet de TileMap tenga terrenos configurados con todas las combinaciones de terreno necesarias. De lo contrario, puede producir resultados inesperados.


void set_layer_enabled(layer: int, enabled: bool) 🔗

Habilita o deshabilita la capa layer. Una capa deshabilitada no se procesa en absoluto (ni renderizado, ni física, etc.).

Si layer es negativo, se accede a las capas desde la última.


void set_layer_modulate(layer: int, modulate: Color) 🔗

Establece el color de una capa. Se multiplicará por el color del tile y el modulate del TileMap.

Si layer es negativo, se accede a las capas desde la última.


void set_layer_name(layer: int, name: String) 🔗

Establece el nombre de una capa. Esto es principalmente útil en el editor.

Si layer es negativo, se accede a las capas desde la última.


void set_layer_navigation_enabled(layer: int, enabled: bool) 🔗

Habilita o deshabilita la generación de regiones de navegación incorporada de una capa. Desactiva esto si necesitas procesar regiones de navegación desde un TileMap usando un nodo NavigationRegion2D.


void set_layer_navigation_map(layer: int, map: RID) 🔗

Asigna map como un mapa de navegación NavigationServer2D para la capa layer del TileMap especificado.

Por defecto, el TileMap utiliza el mapa de navegación World2D por defecto para la primera capa del TileMap. Para cada capa adicional del TileMap, se crea un nuevo mapa de navegación para la capa adicional.

Para hacer que NavigationAgent2D cambie entre los mapas de navegación de las capas del TileMap, utiliza NavigationAgent2D.set_navigation_map() con el mapa de navegación recibido de get_layer_navigation_map().

Si layer es negativo, se accede a las capas desde la última.


void set_layer_y_sort_enabled(layer: int, y_sort_enabled: bool) 🔗

Habilita o deshabilita el ordenamiento Y de una capa. Si una capa está ordenada en Y, la capa se comportará como un nodo CanvasItem donde cada uno de sus tiles se ordena en Y.

Las capas ordenadas en Y generalmente deben tener diferentes valores de índice Z que las capas no ordenadas en Y, de lo contrario, cada una de esas capas se ordenará en Y como un todo con la ordenada en Y. Este es generalmente un comportamiento no deseado.

Si layer es negativo, se accede a las capas desde la última.


void set_layer_y_sort_origin(layer: int, y_sort_origin: int) 🔗

Establece el valor de origen de ordenamiento Y de una capa. Este valor de origen de ordenamiento Y se agrega al valor de origen de ordenamiento Y de cada tile.

Esto permite, por ejemplo, simular un nivel de altura diferente en cada capa. Esto puede ser útil para juegos con vista desde arriba.

Si layer es negativo, se accede a las capas desde la última.


void set_layer_z_index(layer: int, z_index: int) 🔗

Establece el valor del índice Z de una capa. Este índice Z se agrega al valor del índice Z de cada tile.

Si layer es negativo, se accede a las capas desde la última.


void set_navigation_map(layer: int, map: RID) 🔗

Obsoleto: Use set_layer_navigation_map() instead.

Asigna map como un mapa de navegación NavigationServer2D para la capa layer del TileMap especificado.


void set_pattern(layer: int, position: Vector2i, pattern: TileMapPattern) 🔗

Pega el TileMapPattern dado en la position y layer dadas en el mapa de tiles.

Si layer es negativo, se accede a las capas desde la última.


void update_internals() 🔗

Activa una actualización directa del TileMap. Por lo general, no es necesario llamar a esta función, ya que el nodo TileMap se actualiza automáticamente cuando se modifica una de sus propiedades o celdas.

Sin embargo, por razones de rendimiento, esas actualizaciones se procesan por lotes y se retrasan hasta el final del fotograma. Llamar a esta función forzará al TileMap a actualizarse de inmediato.

Advertencia: La actualización del TileMap es computacionalmente costosa y puede afectar el rendimiento. Intenta limitar el número de actualizaciones y cuántos tiles impactan.