타일맵에서 픽셀 위치의 타일 데이터 가져오기
이 문서에서는 타일맵의 특정 위치에서 타일 데이터를 가져오는 방법에 대해 설명합니다. 이 기능은 게임 개발에서 타일 기반 맵을 다룰 때 유용합니다.
함수 설명
tilemap_get_at_pixel 함수를 사용하면 타일맵 요소의 특정 위치에서 타일 데이터를 검색할 수 있습니다. 이 함수는 타일맵 요소 ID와 방 내의 x, y 위치를 인자로 받아 해당 위치의 타일 데이터를 반환합니다.
함수 구문
tilemap_get_at_pixel(tilemap_element_id, x, y)
인자 설명
| 인자 | 타입 | 설명 |
|---|---|---|
| tilemap_element_id | 정수 | 타일 데이터 가져올 타일맵 요소의 고유 ID 값 |
| x | 실수 | 타일 데이터 가져올 x축 위치 (방 내 픽셀 단위) |
| y | 실수 | 타일 데이터 가져올 y축 위치 (방 내 픽셀 단위) |
반환값
- 타일 데이터 (오류가 발생하면 -1 반환)
활용 예제
아래는 tilemap_get_at_pixel 함수를 사용하는 예제입니다.
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" 레이어의 "Clouds" 타일맵 ID를 가져온 후, (64, 128) 위치의 타일 데이터를 가져옵니다. 이 타일 데이터는 뒤집힌 후 다시 타일맵에 설정됩니다.
다양한 활용 및 응용 예제
- 충돌 맵 생성
gml var collision_tile_id = 1; // 충돌 타일의 인덱스 var tile_data = tilemap_get_at_pixel(map_id, player_x, player_y); if (tile_data == collision_tile_id) { // 충돌 처리 } - 타일 속성 변경
gml var tile_data = tilemap_get_at_pixel(map_id, 100, 200); tile_data = tile_set_flip(tile_data, false); // 뒤집지 않음 tilemap_set_at_pixel(map_id, tile_data, 100, 200); - 타일 색상 변경
gml var tile_data = tilemap_get_at_pixel(map_id, 50, 50); tile_data = tile_set_color(tile_data, c_red); // 타일 색상을 빨간색으로 변경 tilemap_set_at_pixel(map_id, tile_data, 50, 50); - 타일 회전
gml var tile_data = tilemap_get_at_pixel(map_id, 30, 30); tile_data = tile_set_rotate(tile_data, 90); // 90도 회전 tilemap_set_at_pixel(map_id, tile_data, 30, 30);
이러한 예제들은 tilemap_get_at_pixel 함수를 활용하여 게임 내에서 다양한 타일 조작을 수행하는 방법을 보여줍니다.