Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

TileData

继承: Object

TileSet 中单个图块的设置。

描述

TileData 对象代表 TileSet 中的单个图块,通常使用图块集编辑器进行编辑,但也可以在运行时使用 TileMap._tile_data_runtime_update 进行修改。

属性

bool

flip_h

false

bool

flip_v

false

Material

material

Color

modulate

Color(1, 1, 1, 1)

float

probability

1.0

int

terrain

-1

int

terrain_set

-1

Vector2i

texture_origin

Vector2i(0, 0)

bool

transpose

false

int

y_sort_origin

0

int

z_index

0

方法

void

add_collision_polygon(layer_id: int)

float

get_collision_polygon_one_way_margin(layer_id: int, polygon_index: int) const

PackedVector2Array

get_collision_polygon_points(layer_id: int, polygon_index: int) const

int

get_collision_polygons_count(layer_id: int) const

float

get_constant_angular_velocity(layer_id: int) const

Vector2

get_constant_linear_velocity(layer_id: int) const

Variant

get_custom_data(layer_name: String) const

Variant

get_custom_data_by_layer_id(layer_id: int) const

NavigationPolygon

get_navigation_polygon(layer_id: int, flip_h: bool = false, flip_v: bool = false, transpose: bool = false) const

OccluderPolygon2D

get_occluder(layer_id: int, flip_h: bool = false, flip_v: bool = false, transpose: bool = false) const

int

get_terrain_peering_bit(peering_bit: CellNeighbor) const

bool

is_collision_polygon_one_way(layer_id: int, polygon_index: int) const

bool

is_valid_terrain_peering_bit(peering_bit: CellNeighbor) const

void

remove_collision_polygon(layer_id: int, polygon_index: int)

void

set_collision_polygon_one_way(layer_id: int, polygon_index: int, one_way: bool)

void

set_collision_polygon_one_way_margin(layer_id: int, polygon_index: int, one_way_margin: float)

void

set_collision_polygon_points(layer_id: int, polygon_index: int, polygon: PackedVector2Array)

void

set_collision_polygons_count(layer_id: int, polygons_count: int)

void

set_constant_angular_velocity(layer_id: int, velocity: float)

void

set_constant_linear_velocity(layer_id: int, velocity: Vector2)

void

set_custom_data(layer_name: String, value: Variant)

void

set_custom_data_by_layer_id(layer_id: int, value: Variant)

void

set_navigation_polygon(layer_id: int, navigation_polygon: NavigationPolygon)

void

set_occluder(layer_id: int, occluder_polygon: OccluderPolygon2D)

void

set_terrain_peering_bit(peering_bit: CellNeighbor, terrain: int)


信号

changed() 🔗

任何属性发生变化时发出。


属性说明

bool flip_h = false 🔗

  • void set_flip_h(value: bool)

  • bool get_flip_h()

如果为 true,则该图块的纹理会被水平翻转。


bool flip_v = false 🔗

  • void set_flip_v(value: bool)

  • bool get_flip_v()

如果为 true,则该图块的纹理会被垂直翻转。


Material material 🔗

用于此 TileDataMaterial。使用默认着色器可以设为 CanvasItemMaterial,使用自定义着色器可以设为 ShaderMaterial


Color modulate = Color(1, 1, 1, 1) 🔗

  • void set_modulate(value: Color)

  • Color get_modulate()

该图块的颜色调制。


float probability = 1.0 🔗

  • void set_probability(value: float)

  • float get_probability()

绘制随机图块图案时选择该图块的相对概率。


int terrain = -1 🔗

  • void set_terrain(value: int)

  • int get_terrain()

该图块所使用的地形集中地形的 ID。


int terrain_set = -1 🔗

  • void set_terrain_set(value: int)

  • int get_terrain_set()

该图块所使用的地形集的 ID。


Vector2i texture_origin = Vector2i(0, 0) 🔗

该图块绘制时的位置偏移量。


bool transpose = false 🔗

  • void set_transpose(value: bool)

  • bool get_transpose()

如果为 true,则该图块会转置显示,即调换水平和垂直纹理 UV。


int y_sort_origin = 0 🔗

  • void set_y_sort_origin(value: int)

  • int get_y_sort_origin()

该图块用于确定 Y 排序顺序的垂直点。


int z_index = 0 🔗

  • void set_z_index(value: int)

  • int get_z_index()

该图块的排序索引,相对于 TileMap


方法说明

void add_collision_polygon(layer_id: int) 🔗

为该图块在给定的 TileSet 物理层上添加碰撞多边形。


float get_collision_polygon_one_way_margin(layer_id: int, polygon_index: int) const 🔗

返回在索引为 layer_id 的 TileSet 物理层上,索引为 polygon_index 的多边形的单向边距(用于单向平台)。


PackedVector2Array get_collision_polygon_points(layer_id: int, polygon_index: int) const 🔗

返回在索引为 layer_id 的 TileSet 物理层上,索引为 polygon_index 的多边形的点。


int get_collision_polygons_count(layer_id: int) const 🔗

设置该图块中索引为 layer_id 的 TileSet 物理层中多边形的数量。


float get_constant_angular_velocity(layer_id: int) const 🔗

返回恒定角速度,将应用于与此图块碰撞的对象。


Vector2 get_constant_linear_velocity(layer_id: int) const 🔗

返回恒定线速度,将应用于与此图块碰撞的对象。


Variant get_custom_data(layer_name: String) const 🔗

返回自定义数据层的自定义数据值,自定义数据层用名称 layer_name 指定。


Variant get_custom_data_by_layer_id(layer_id: int) const 🔗

返回自定义数据层的自定义数据值,自定义数据层用索引 layer_id 指定。


NavigationPolygon get_navigation_polygon(layer_id: int, flip_h: bool = false, flip_v: bool = false, transpose: bool = false) const 🔗

返回图块的导航多边形,对应的 TileSet 导航层由索引 layer_id 指定。

可以使用 flip_hflip_vtranspose 对返回的多边形进行变换。


OccluderPolygon2D get_occluder(layer_id: int, flip_h: bool = false, flip_v: bool = false, transpose: bool = false) const 🔗

返回图块的遮挡器多边形,对应的 TileSet 遮挡层由索引 layer_id 指定。

可以使用 flip_hflip_vtranspose 对返回的多边形进行变换。


int get_terrain_peering_bit(peering_bit: CellNeighbor) const 🔗

Returns the tile's terrain bit for the given peering_bit direction. To check that a direction is valid, use is_valid_terrain_peering_bit.


bool is_collision_polygon_one_way(layer_id: int, polygon_index: int) const 🔗

返回索引为 layer_id 的 TileSet 物理层上索引为 polygon_index 的多边形是否启用了单向碰撞。


bool is_valid_terrain_peering_bit(peering_bit: CellNeighbor) const 🔗

Returns whether the given peering_bit direction is valid for this tile.


void remove_collision_polygon(layer_id: int, polygon_index: int) 🔗

移除索引为 layer_id 的 TileSet 物理层上索引为 polygon_index 的多边形。


void set_collision_polygon_one_way(layer_id: int, polygon_index: int, one_way: bool) 🔗

启用/禁用索引为 layer_id 的 TileSet 物理层上索引为 polygon_index 的多边形的单向碰撞。


void set_collision_polygon_one_way_margin(layer_id: int, polygon_index: int, one_way_margin: float) 🔗

启用/禁用索引为 layer_id 的 TileSet 物理层上索引为 polygon_index 的多边形的单向碰撞。


void set_collision_polygon_points(layer_id: int, polygon_index: int, polygon: PackedVector2Array) 🔗

设置索引为 layer_id 的 TileSet 物理层上索引为 polygon_index 的多边形的顶点。


void set_collision_polygons_count(layer_id: int, polygons_count: int) 🔗

设置索引为 layer_id 的 TileSet 物理层中多边形的数量。


void set_constant_angular_velocity(layer_id: int, velocity: float) 🔗

设置恒定角速度。不会旋转图块。会对与该图块发生碰撞的对象应用该角速度。


void set_constant_linear_velocity(layer_id: int, velocity: Vector2) 🔗

设置恒定线速度。不会旋转图块。会对与该图块发生碰撞的对象应用该线速度。可用于创建传送带。


void set_custom_data(layer_name: String, value: Variant) 🔗

设置该图块的自定义数据值,TileSet 自定义数据层由名称 layer_name 指定。


void set_custom_data_by_layer_id(layer_id: int, value: Variant) 🔗

设置该图块的自定义数据值,TileSet 自定义数据层由索引 layer_id 指定。


void set_navigation_polygon(layer_id: int, navigation_polygon: NavigationPolygon) 🔗

设置索引为 layer_id 的 TileSet 导航层的导航多边形。


void set_occluder(layer_id: int, occluder_polygon: OccluderPolygon2D) 🔗

设置索引为 layer_id 的 TileSet 遮挡层的遮挡器。


void set_terrain_peering_bit(peering_bit: CellNeighbor, terrain: int) 🔗

Sets the tile's terrain bit for the given peering_bit direction. To check that a direction is valid, use is_valid_terrain_peering_bit.