tilemap_get_at_pixel

描述

Using this function you can retrieve the tile data from a position (within the room) of the tilemap element. You give the tilemap element ID (which you get when you create a tilemap element using layer_tilemap_create() or when you use the function layer_tilemap_get_id()) as well as the x and y position in the room to get the tile data from and the function will return the tile data "blob". This data is essentially a bit mask that contains the tile index, the flip/rotate/mirror booleans and any mask data that has been applied (see tilemap_set_mask for details), and the resulting data value can then be used in the Tile Functions to change a tiles properties. If you need to get the tile data from a specific tile cell you should be using the function tilemap_get instead.

IMPORTANT! If the tiles in the tilemap have been unchanged (ie: they are not rotated or flipped etc...), then the return value of the tileset data will be exactly equal to the index of the tile on the tileset. So you can create "collision maps" of tiles using one tile at index 1 in the tileset - for example - then use this function to check for 1 or 0 (an empty tile) to calculate collisions.


语法:

tilemap_get_at_pixel(tilemap_element_id, x, y);


参数:

参数 描述
tilemap_element_id The unique ID value of the tilemap element to get the tiledata of
x The position along the x-axis to get the tile data from (in room pixels)
y The position along the y-axis to get the tile data from (in room pixels)


返回:

Real (-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);

The above code gets the ID for the tilemap "Clouds" on the layer "Tiles_Sky" and then uses that to get the data from the tile at position (64, 128). This tile data is then flipped before being used to set the tile on the tilemap again.