tilemap_get_at_pixel

使用此函数,您可以从瓦片地图元素的某个位置 (房间内) 检索瓦片数据。

您还可以提供图块地图元素 ID(在使用 layer_tilemap_create() 创建图块地图元素或使用函数 layer_tilemap_get_id() 时获得) 作为获取图块数据的 房间中 的 x 和 y 位置,该函数将返回图块数据 "blob"。该数据本质上是一个位掩码,其中包含图块索引、翻转 / 旋转 / 镜像布尔值以及已应用的任何掩码数据 (有关详细信息,请参阅 tilemap_set_mask()) 以及结果数据值然后可以在 tile_* 函数中使用来更改图块属性。如果您需要从特定图块单元格获取图块数据,则应使用函数 tilemap_get()

重要 如果图块地图中的图块未发生变化 (即:它们 旋转、翻转等),则图块集数据的返回值将完全相等到图块集上图块的索引。因此,您可以使用图块集中索引 1 处的一个图块创建图块的 " 碰撞图 "( 例如),然后使用此函数检查 1 或 0( 空图块) 以计算碰撞。

 

语法:

tilemap_get_at_pixel(tilemap_element_id, x, y)

参数类型描述
tilemap_element_idTile Map Element ID图块图元素的唯一ID值,用于获取
xReal沿x轴从(房间像素中)获取图块数据的位置
yReal沿y轴从(房间像素中)获取图块数据的位置

 

返回:

Tile Data (-1 if there is an error)

 

例子:

var lay_id = layer_get_id("Tiles_sky");
var map_id = layer_tilemap_get_id(lay_id);
var data = tilemap_get_at_pixel(map_id, 64, 128);
data = tile_set_flip(data, true);
tilemap_set_at_pixel(map_id, data, 64, 128);

上面的代码获取"Tiles_Sky"层上的图块映射"云"的ID,然后使用该ID从位置(64,128)的图块中获取数据。然后翻转此图块数据,然后再用于设置图块贴图上的图块。