tilemap_get_cell_y_at_pixel 함수 설명
이 문서에서는 tilemap_get_cell_y_at_pixel 함수에 대해 설명합니다. 이 함수를 사용하면 방 내에서 상대적인 y축 위치를 제공하여 개별 타일 맵 셀의 y축 위치를 가져올 수 있습니다.
함수 개요
tilemap_get_cell_y_at_pixel 함수는 타일 맵 요소 ID와 방 내의 x, y 위치를 인자로 받아 해당 위치의 타일 맵에서 셀의 y 위치를 반환합니다. 만약 주어진 값이 타일 맵 영역 밖에 있거나 셀을 찾을 수 없는 경우, -1을 반환합니다.
문법
tilemap_get_cell_y_at_pixel(tilemap_element_id, x, y)
인자 설명
| 인자 이름 | 타입 | 설명 |
|---|---|---|
| tilemap_element_id | Tile Map Element ID | 타일 맵 요소의 고유 ID 값 |
| x | Real | 셀을 가져오기 위해 사용할 방 내의 x 위치 |
| y | Real | 셀을 가져오기 위해 사용할 방 내의 y 위치 |
반환 값
- Real: y축 셀 위치 또는 오류가 발생할 경우 -1
활용 예제
다음은 tilemap_get_cell_y_at_pixel 함수를 활용하는 예제입니다.
var lay_id = layer_get_id("Tiles_Walls");
var map_id = layer_tilemap_get_id(lay_id);
var _x = tilemap_get_cell_x_at_pixel(map_id, mouse_x, mouse_y);
var _y = tilemap_get_cell_y_at_pixel(map_id, mouse_x, mouse_y);
tiledata = tilemap_get(map_id, _x, _y);
위 코드는 타일 맵 ID를 사용하여 방 좌표에서 셀 위치를 가져오고, 해당 위치에 있는 타일 데이터를 인스턴스 변수에 저장합니다.
추가 활용 예제
- 타일 맵에서 특정 셀의 상태 확인하기
var cell_y = tilemap_get_cell_y_at_pixel(map_id, mouse_x, mouse_y);
if (cell_y != -1) {
// 셀의 상태를 확인하는 코드
}
- 타일 맵의 모든 셀을 순회하기
for (var i = 0; i < tilemap_get_height(map_id); i++) {
for (var j = 0; j < tilemap_get_width(map_id); j++) {
var cell_y = tilemap_get_cell_y_at_pixel(map_id, j * tile_width, i * tile_height);
// 각 셀에 대한 처리 코드
}
}
- 마우스 클릭 위치의 타일 정보 가져오기
if (mouse_check_button_pressed(mb_left)) {
var cell_y = tilemap_get_cell_y_at_pixel(map_id, mouse_x, mouse_y);
if (cell_y != -1) {
// 클릭한 위치의 타일 정보 처리
}
}
이와 같은 방식으로 tilemap_get_cell_y_at_pixel 함수를 활용하여 다양한 게임 로직을 구현할 수 있습니다.