draw_tile

使用此函数,您可以从图块集中绘制任何给定的图块-与旋转、翻转和镜像竞争-设置帧(如果已设置动画)和房间内的位置。区块集Id值是IdE中设置的区块集索引,区块数据是包含有关区块索引和已应用的转换的所有信息的数据"斑点"。您可以使用函数tilemap_get()获取图块数据,然后可以使用图块函数操作这些数据,也可以使用以下图块常量以及要创建的图块的索引值自行构造该数据:

常量描述
tile_rotateUsed to set/get the rotate bit of a tile data blob.
tile_mirrorUsed to set/get the mirror bit of a tile data blob.
tile_flipUsed to set/get the flip bit of a tile data blob.
tile_index_maskA special constant that is for "and"-ing with the tile data blob to extract the tile index.


要获得最终的图块数据,可以使用图块索引值按位""或以下常量:

var tiledata = 8 | tile_rotate | tile_flip;

上述代码只需创建一个局部变量,即可将索引为8的互动程序的互动程序数据存储在互动程序集上,并进行旋转和翻转。然后,可以使用此选项从指定的分幅集中在该索引处绘制分幅。此选项不会链接到任何分幅图层,并且将在执行绘制的实例的图层深度处、在房间中指定的x/ y位置处绘制分幅。请注意,也可以设置要绘制的框架。如果索引互动程序是动画集的一部分,则可以在此处设置帧编号(从0到帧数-1),索引互动程序将只是指示您正在使用哪个动画互动程序集,而它将是绘制的给定帧。如果图块不是动画集的一部分,则帧应设置为0。

 

语法:

draw_tile(tileset, tiledata, frame, x, y)

参数类型描述
tilesetTile Set Asset要使用的分幅集的ID
tiledataTile Data要使用的图块数据
frameReal要使用的动画互动程序的帧编号(非动画互动程序的默认值为0)
xReal房间内要绘制的x位置
yReal房间内要绘制的y位置

 

返回:

Real

 

例子:

var lay_id = layer_get_id("Tiles_sky");
var map_id = layer_tilemap_get_id(lay_id);
var data = tilemap_get(map_id, 0, 0);
tile_set_flip(data, true);
draw_tile(set_Wall, data, 0, x, y);

上述代码将从给定的图块图获取图块图上的数据,然后设置"翻转"标志,并使用该数据绘制在实例位置翻转的图块图。