타일맵에서 타일 데이터 가져오기
이 문서에서는 타일맵에서 특정 셀의 타일 데이터를 가져오는 방법에 대해 설명합니다. tilemap_get 함수를 사용하여 타일맵 요소의 셀에서 타일 데이터를 검색할 수 있습니다. 이 함수는 타일맵 요소 ID와 셀의 x, y 위치를 입력받아 타일 데이터 "blob"을 반환합니다.
함수 설명
함수 사용법
tilemap_get(tilemap_element_id, cell_x, cell_y)
매개변수 설명
| 매개변수 | 타입 | 설명 |
|---|---|---|
| tilemap_element_id | 정수 | 타일 데이터 가져올 타일맵 요소의 고유 ID |
| cell_x | 실수 | 타일 데이터 가져올 x축의 셀 위치 |
| cell_y | 실수 | 타일 데이터 가져올 y축의 셀 위치 |
반환값
- 타일 데이터 (오류가 발생하면 -1 반환)
예제 코드
다음은 타일맵에서 타일 데이터를 가져오고, 이를 수정한 후 다시 설정하는 예제입니다.
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);
data = tile_set_flip(data, true);
tilemap_set(map_id, data, 0, 0);
위 코드는 "Tiles_Sky" 레이어의 타일맵 ID를 가져온 후, (0, 0) 위치의 타일 데이터를 가져옵니다. 이 타일 데이터는 뒤집힌 후 다시 타일맵에 설정됩니다.
활용 및 응용 예제
- 충돌 맵 생성
- 특정 타일 인덱스를 사용하여 충돌 맵을 생성하고, 이를 통해 충돌 감지를 수행할 수 있습니다.
gml var collision_tile_index = 1; var tile_data = tilemap_get(map_id, cell_x, cell_y); if (tile_data == collision_tile_index) { // 충돌 처리 } - 타일 속성 변경
- 타일의 회전, 뒤집기, 마스크 적용 등을 통해 다양한 타일 속성을 변경할 수 있습니다.
gml var tile_data = tilemap_get(map_id, 1, 1); tile_data = tile_set_rotate(tile_data, 90); // 90도 회전 tilemap_set(map_id, tile_data, 1, 1); - 타일 데이터 확인
- 특정 셀의 타일 데이터를 확인하여 게임의 상태를 조정할 수 있습니다.
gml var tile_data = tilemap_get(map_id, 2, 2); if (tile_data != -1) { // 타일 데이터가 유효할 때의 처리 } - 타일맵의 모든 타일 순회
- 타일맵의 모든 셀을 순회하며 타일 데이터를 가져오고 처리할 수 있습니다.
gml for (var x = 0; x < tilemap_width; x++) { for (var y = 0; y < tilemap_height; y++) { var tile_data = tilemap_get(map_id, x, y); // 타일 데이터 처리 } }
이와 같이 tilemap_get 함수를 활용하여 타일맵의 타일 데이터를 효과적으로 관리하고 조작할 수 있습니다.