픽셀에서 타일 인덱스 설정하기
이 문서에서는 특정 레이어에 지정된 위치의 타일 인덱스를 새 인덱스로 설정하는 방법에 대해 설명합니다. 이 기능은 주로 게임에서 타일을 조작할 때 사용됩니다.
기능 설명
- 레어 선택: 레이어는 문자열로 지정되며, 이는 방 편집기에서 레이어에 이름을 지정할 때 사용한 이름과 동일해야 합니다.
- 위치 지정: x와 y 위치를 지정하여 타일을 설정할 좌표를 정의합니다. 이 좌표는 호출하는 인스턴스의 위치를 기준으로 상대적으로 설정할 수 있습니다.
- 타일 설정: 설정할 타일 인덱스를 제공해야 합니다. 타일은 왼쪽에서 오른쪽, 위에서 아래로 순서대로 인덱스가 매겨지며, 0은 가장 왼쪽 위에 위치한 타일을 의미합니다. 타일 인덱스를 0으로 설정하여 타일을 제거할 수도 있습니다.
Action Syntax
set_tile_index_at_pixel(layer, x, y, tile);
Arguments
| 인자 | 설명 |
|---|---|
| Layer | 타일을 설정할 레이어 |
| x | 확인할 x 위치 |
| y | 확인할 y 위치 |
| Tile | 사용될 새 타일의 인덱스 |
사용 예제
아래 코드는 마우스 왼쪽 버튼이 클릭될 때, 마우스 포인터가 위치한 타일 셀의 인덱스를 확인합니다. 타일 인덱스가 0이 아닐 경우 인덱스를 0으로 설정하여 타일을 제거합니다.
if (mouse_check_button_pressed(mb_left)) {
var tile_index = get_tile_index_at_pixel("TileLayer", mouse_x, mouse_y);
if (tile_index != 0) {
set_tile_index_at_pixel("TileLayer", mouse_x, mouse_y, 0);
}
}
다양한 활용 및 응용 예제
- 타일 교체하기
- 특정 위치의 타일을 다른 타일로 교체하는 예제입니다.
gml if (mouse_check_button_pressed(mb_right)) { var new_tile_index = 1; // 교체할 타일 인덱스 set_tile_index_at_pixel("TileLayer", mouse_x, mouse_y, new_tile_index); }
- 타일 삭제하기
- 지정된 레이어에서 타일을 제거하는 간단한 예제입니다.
gml if (keyboard_check_pressed(vk_delete)) { set_tile_index_at_pixel("TileLayer", mouse_x, mouse_y, 0); }
- 채우기 도구 만들기
- 클릭한 위치 근처의 모든 타일을 같은 인덱스로 변경하는 예제입니다.
gml // 범위를 지정하여 타일을 채웁니다. for (var ix = -1; ix <= 1; ix++) { for (var iy = -1; iy <= 1; iy++) { set_tile_index_at_pixel("TileLayer", mouse_x + ix * TILE_SIZE, mouse_y + iy * TILE_SIZE, 2); // 2번 타일로 채움 } }
이 문서에서 설명한 내용을 바탕으로 게임에서 타일을 자유롭게 조작하고 활용할 수 있습니다.