ds_grid_value_y 함수 설명
ds_grid_value_y
함수는 주어진 직사각형 그리드 영역 내에서 검색하려는 값의 y 좌표를 얻는 데 사용됩니다. 이 함수는 ds_grid_create()
로 반환된 DS 그리드 인덱스와 검색할 그리드 영역의 왼쪽 상단 및 오른쪽 하단 모서리의 x/y 위치를 입력받습니다. 마지막으로 검색할 값을 제공합니다. 만약 검색하는 값이 존재하지 않으면 함수는 -1을 반환합니다.
문법
ds_grid_value_y(index, x1, y1, x2, y2, val);
인수 설명
인수 | 유형 | 설명 |
---|---|---|
index | 핸들 | 그리드의 핸들입니다. |
x1 | 정수 | 그리드에서 영역의 왼쪽 x 위치 (0부터 (그리드 너비 - 1)까지). |
y1 | 정수 | 그리드에서 영역의 위쪽 y 위치 (0부터 (그리드 높이 - 1)까지). |
x2 | 정수 | 그리드에서 영역의 오른쪽 x 위치 (0부터 (그리드 너비 - 1)까지). |
y2 | 정수 | 그리드에서 영역의 아래쪽 y 위치 (0부터 (그리드 높이 - 1)까지). |
val | 값 | 찾고자 하는 값입니다. |
반환값
- 검색한 값의 y 좌표. 값이 존재하지 않으면 -1을 반환합니다.
예제
아래 코드는 특정 값이 DS 그리드의 직사각형 영역 내에 존재하는지 확인하고, 존재할 경우 해당 값의 x 및 y 위치를 두 개의 변수에 저장합니다.
if (ds_grid_value_exists(grid, 0, 1, 5, 6, val)) {
xpos = ds_grid_value_x(grid, 0, 1, 5, 6, val);
ypos = ds_grid_value_y(grid, 0, 1, 5, 6, val);
}
활용 예제
- 그리드에서 값 찾기
gml var grid = ds_grid_create(10, 10); ds_grid_set(grid, 2, 3, "찾는 값"); var y_pos = ds_grid_value_y(grid, 0, 0, 9, 9, "찾는 값");
- 값이 존재하는지 확인 후 처리
gml if (ds_grid_value_exists(grid, 0, 0, 9, 9, "값")) { var y_pos = ds_grid_value_y(grid, 0, 0, 9, 9, "값"); // y_pos를 사용하여 추가 작업 수행 }
- 여러 값 검색
gml var values = ["값1", "값2", "값3"]; for (var i = 0; i < array_length(values); i++) { var y_pos = ds_grid_value_y(grid, 0, 0, 9, 9, values[i]); if (y_pos != -1) { // 값이 존재할 경우 처리 } }
- 그리드의 모든 값 출력
gml for (var x = 0; x < ds_grid_width(grid); x++) { for (var y = 0; y < ds_grid_height(grid); y++) { var value = ds_grid_get(grid, x, y); if (value != undefined) { show_debug_message("x: " + string(x) + ", y: " + string(y) + ", 값: " + string(value)); } } }