TileMap

Inherits: Node2D < CanvasItem < Node < Object

类别: 核心

简要说明

用于基于二维平铺的地图的节点。

方法

无效

clear ( )

无效

fix_invalid_tiles ( )

int

get_cell ( int x, int y ) const

Vector2

get_cell_autotile_coord ( int x, int y ) const

int

get_cellv ( Vector2 position ) const

bool

get_collision_layer_bit ( int bit ) const

bool

get_collision_mask_bit ( int bit ) const

Array

get_used_cells ( ) const

Array

get_used_cells_by_id ( int id ) const

Rect2

get_used_rect ( )

bool

is_cell_transposed ( int x, int y ) const

bool

is_cell_x_flipped ( int x, int y ) const

bool

is_cell_y_flipped ( int x, int y ) const

Vector2

map_to_world ( Vector2 map_position, bool ignore_half_ofs=false ) const

无效

set_cell ( int x, int y, int tile, bool flip_x=false, bool flip_y=false, bool transpose=false, Vector2 autotile_coord=Vector2( 0, 0 ) )

无效

set_cellv ( Vector2 position, int tile, bool flip_x=false, bool flip_y=false, bool transpose=false )

无效

set_collision_layer_bit ( int bit, bool value )

无效

set_collision_mask_bit ( int bit, bool value )

无效

update_bitmask_area ( Vector2 position )

无效

update_bitmask_region ( Vector2 start=Vector2( 0, 0 ), Vector2 end=Vector2( 0, 0 ) )

无效

update_dirty_quadrants ( )

Vector2

world_to_map ( Vector2 world_position ) const

信号

  • settings_changed ( )

在tilemap设置更改时发出。

枚举

枚举 Mode

  • MODE_SQUARE = 0 ---正交定向模式。

  • MODE_ISOMETRIC = 1 ---等轴测方向模式。

  • MODE_CUSTOM = 2 ---自定义方向模式。

枚举 HalfOffset

  • HALF_OFFSET_X = 0 ---X坐标上的半偏移。

  • HALF_OFFSET_Y = 1 ---Y坐标上的半偏移。

  • HALF_OFFSET_DISABLED = 2 ---半偏移禁用。

  • HALF_OFFSET_NEGATIVE_X = 3 ---X坐标上的半偏移(负)。

  • HALF_OFFSET_NEGATIVE_Y = 4 ---Y坐标上的半偏移(负)。

枚举 TileOrigin

  • TILE_ORIGIN_TOP_LEFT = 0 ---瓷砖原点位于左上角。

  • TILE_ORIGIN_CENTER = 1 ---瓷砖的中心位置。

  • TILE_ORIGIN_BOTTOM_LEFT = 2 ---瓷砖原点位于左下角。

常量

  • INVALID_CELL = -1 ---当单元格不存在时返回。

描述

用于基于二维平铺的地图的节点。tilemaps使用 TileSet 其中包含用于创建基于网格的地图的平铺列表(纹理加上可选的碰撞、导航和/或遮挡器形状)。

属性描述

违约

设定器

设置“剪辑”UV(值)

吸气剂

获取剪辑

违约

Transform2d(1,0,0,1,0,0)

设定器

设置自定义转换(值)

吸气剂

获取自定义转换()

习俗 Transform2D 应用于tilemap的单元格。

违约

2

设定器

设置“半偏移”(值)

吸气剂

得到半偏移量

补偿交替瓷砖的量。见 HalfOffset 对于可能的值。

  • int cell_quadrant_size

违约

16

设定器

设置象限大小(值)

吸气剂

获取象限大小()。

tilemap的象限大小。使用此大小的块通过批处理优化绘图。

违约

矢量2(64、64)

设定器

设置单元格大小(值)

吸气剂

获取单元格大小()

tilemap的单元格大小。

违约

0

设定器

设置瓷砖原点(值)

吸气剂

获取u图块u原点()

瓷砖原点的位置。见 TileOrigin 对于可能的值。

违约

设定器

设置排序模式(值)

吸气剂

是否启用了“排序模式”()

如果 true ,tilemap的子对象将按其Y坐标的顺序绘制。

  • bool centered_textures

违约

设定器

设置“居中”纹理(值)

吸气剂

是否启用了以“u”为中心的“u”纹理()

如果 true ,纹理将集中在每个瓷砖的中间。当纹理大于或小于瓷砖时(例如,为了避免瓷砖边缘闪烁),这对于某些等轴测或自上而下模式很有用。偏移仍然应用,但从瓷砖的中心开始。如果使用, compatibility_mode 被忽略。

如果 false ,纹理位置从左上角开始,除非 compatibility_mode 启用。

违约

0.0

设定器

设置碰撞反弹(值)

吸气剂

得到碰撞反弹

静态物体碰撞的反弹值(参见 collision_use_kinematic

  • float collision_friction

违约

1.0

设定器

设置碰撞摩擦(值)

吸气剂

得到碰撞摩擦

静态物体碰撞的摩擦值(参见 collision_use_kinematic

  • int collision_layer

违约

1

设定器

设置碰撞层(值)

吸气剂

获取“碰撞层”()

tilemap中所有碰撞器的碰撞层。

  • int collision_mask

违约

1

设定器

设置碰撞屏蔽(值)

吸气剂

获取碰撞掩模(

tilemap中所有碰撞器的碰撞遮罩。

  • bool collision_use_kinematic

违约

设定器

设置碰撞使用运动(值)

吸气剂

获取碰撞使用运动学()。

如果 true ,tilemap碰撞将作为运动体处理。如果 false ,碰撞将作为静态实体处理。

  • bool collision_use_parent

违约

设定器

设置碰撞使用父级(值)

吸气剂

获取冲突使用父级

  • bool compatibility_mode

违约

设定器

设置兼容模式(值)

吸气剂

是否启用了兼容模式()。

如果 true ,与godot 3.1或更早版本中制作的tilemaps保持兼容性(纹理在瓷砖原点更改时移动,如果纹理大小不均匀则旋转)。此模式在执行时出现问题 flip_hflip_vtranspose 非均匀等距瓷砖(如2:1)上的瓷砖操作,其中纹理与碰撞不一致,因此不建议等距或非方形瓷砖使用。

如果 false ,执行此操作时纹理不会移动 flip_hflip_v 操作(如果未使用偏移),或更改瓷砖原点时。

兼容模式不适用于 centered_textures 选项,因为将纹理替换为 cell_tile_origin 选项或不规则瓷砖在居中纹理时不相关。

违约

0

设定器

设置模式(值)

吸气剂

获取_模式()

tilemap方向模式。见 Mode 对于可能的值。

  • int occluder_light_mask

违约

1

设定器

设置遮光罩(值)

吸气剂

得到遮光罩

指定给tilemap中所有灯光遮挡器的灯光遮罩。tileset的灯光遮挡器将仅从具有相同灯光遮罩的灯光2d投射阴影。

设定器

设置(值)

吸气剂

获取蒂列集()

分配的 TileSet .

方法说明

  • void clear ( )

清除所有单元格。

  • void fix_invalid_tiles ( )

清除tileset中不存在的单元格。

返回给定单元格的平铺索引。如果单元格中不存在图块,则返回 INVALID_CELL .

返回由vector2给定的单元格的平铺索引。如果单元格中不存在图块,则返回 INVALID_CELL .

  • bool get_collision_layer_bit ( int bit ) const

返回 true 如果设置了给定的碰撞层位。

  • bool get_collision_mask_bit ( int bit ) const

返回 true 如果设置了给定的碰撞屏蔽位。

  • Array get_used_cells ( ) const

返回A Vector2 数组,其中包含来自tileset的tile的所有单元格的位置(即不同于 -1

  • Array get_used_cells_by_id ( int id ) const

返回具有给定图块的所有单元格的数组 id .

  • Rect2 get_used_rect ( )

返回一个矩形,该矩形包含已使用(非空)的映射图块。

返回 true 如果给定的单元被转置,即X和Y轴被交换。

返回 true 如果给定的单元格在X轴上翻转。

返回 true 如果给定单元格在Y轴上翻转。

返回与给定的tilemap(基于网格)坐标对应的全局位置。

或者,可以忽略tilemap的半偏移量。

  • void set_cell ( int x, int y, int tile, bool flip_x=false, bool flip_y=false, bool transpose=false, Vector2 autotile_coord=Vector2( 0, 0 ) )

为vector2给定的单元格设置平铺索引。

的索引 -1 清除单元格。

也可以选择翻转、转置或给定自动图档坐标。

注: 由于性能原因,导航多边形和碰撞形状等数据不会立即更新。

如果您需要立即更新这些内容,可以致电 update_dirty_quadrants .

重写此方法也会在内部重写它,允许在放置/删除块时实现自定义逻辑:

func set_cell(x, y, tile, flip_x, flip_y, transpose, autotile_coord)
    # Write your custom logic here.
    # To call the default method:
    .set_cell(x, y, tile, flip_x, flip_y, transpose, autotile_coord)

设置给定单元格的平铺索引。

的索引 -1 清除单元格。

也可以选择翻转或换位瓷砖。

注: 由于性能原因,导航多边形和碰撞形状等数据不会立即更新。

如果您需要立即更新这些内容,可以致电 update_dirty_quadrants .

  • void set_collision_layer_bit ( int bit, bool value )

设置给定的碰撞层位。

  • void set_collision_mask_bit ( int bit, bool value )

设置给定的碰撞遮罩位。

  • void update_bitmask_area ( Vector2 position )

对其基于网格的X和Y坐标引用的单元格(及其相邻单元格)应用自动跟踪规则。

  • void update_bitmask_region ( Vector2 start=Vector2( 0, 0 ), Vector2 end=Vector2( 0, 0 ) )

将自动跟踪规则应用于给定区域中的单元格(由基于网格的X和Y坐标指定)。

使用无效(或缺少)参数进行调用会对整个tilemap应用自动分页规则。

  • void update_dirty_quadrants ( )

更新平铺地图的象限,允许在修改后立即使用导航和碰撞形状等内容。

返回与给定本地位置对应的tilemap(基于网格)坐标。