타일 미러 설정 함수
tile_set_mirror 함수는 주어진 타일 데이터 세트를 미러링할지 여부를 설정하는 데 사용됩니다. 이 함수는 tilemap_get() 함수를 사용하여 가져온 타일 데이터를 입력받고, mirror 인자를 true로 설정하면 타일이 미러링되고, false로 설정하면 기본 상태(미러링되지 않음)로 유지됩니다. 이 함수는 수정된 타일 데이터 세트를 반환하며, 이는 tilemap_set() 함수를 사용하여 적용할 수 있습니다.
문법
tile_set_mirror(tiledata, mirror)
인자 설명
| 인자 이름 | 타입 | 설명 |
|---|---|---|
| tiledata | Tile Data | 설정할 타일 데이터 |
| mirror | Boolean | true로 설정하면 미러링, false로 설정하면 그대로 유지 |
반환값
- 수정된 타일 데이터
예제 코드
아래 코드는 주어진 레이어에서 타일 맵 ID를 가져오고, 마우스 아래의 타일의 x 및 y 셀 위치를 가져옵니다. 이 위치를 사용하여 타일 데이터를 가져오고, 미러링된 후 다시 타일을 설정합니다.
var lay_id = layer_get_id("Tiles_sky");
var map_id = layer_tilemap_get_id(lay_id);
var mx = tilemap_get_cell_x_at_pixel(map_id, mouse_x, mouse_y);
var my = tilemap_get_cell_y_at_pixel(map_id, mouse_x, mouse_y);
var data = tilemap_get(map_id, mx, my);
var bool = !tile_get_mirror(data);
data = tile_set_mirror(data, bool);
tilemap_set(map_id, data, mx, my);
활용 예제
예제 1: 타일 미러링 토글
사용자가 특정 키를 눌렀을 때 타일의 미러링 상태를 토글하는 코드입니다.
if (keyboard_check_pressed(vk_space)) {
var lay_id = layer_get_id("Tiles_sky");
var map_id = layer_tilemap_get_id(lay_id);
var mx = tilemap_get_cell_x_at_pixel(map_id, mouse_x, mouse_y);
var my = tilemap_get_cell_y_at_pixel(map_id, mouse_x, mouse_y);
var data = tilemap_get(map_id, mx, my);
var bool = !tile_get_mirror(data);
data = tile_set_mirror(data, bool);
tilemap_set(map_id, data, mx, my);
}
예제 2: 특정 타일 미러링
특정 타일 ID에 대해 미러링을 설정하는 코드입니다.
var lay_id = layer_get_id("Tiles_sky");
var map_id = layer_tilemap_get_id(lay_id);
var target_tile_id = 5; // 미러링할 타일 ID
var data = tilemap_get(map_id, target_tile_id % tilemap_width(map_id), target_tile_id div tilemap_width(map_id));
data = tile_set_mirror(data, true);
tilemap_set(map_id, data, target_tile_id % tilemap_width(map_id), target_tile_id div tilemap_width(map_id));
예제 3: 모든 타일 미러링
타일 맵의 모든 타일을 미러링하는 코드입니다.
var lay_id = layer_get_id("Tiles_sky");
var map_id = layer_tilemap_get_id(lay_id);
for (var x = 0; x < tilemap_width(map_id); x++) {
for (var y = 0; y < tilemap_height(map_id); y++) {
var data = tilemap_get(map_id, x, y);
data = tile_set_mirror(data, true);
tilemap_set(map_id, data, x, y);
}
}