DS 그리드
DS 그리드는 2차원으로 정보를 저장하는 데이터 구조입니다. 그리드를 정의할 때 정수형 너비와 높이를 설정하여 그리드 내의 "셀" 총 개수를 결정합니다 (너비와 높이를 곱한 값). 이러한 셀은 서로 다른 데이터 값(실수 또는 문자열)을 저장하는 데 사용됩니다.
이 구조를 사용하면 x 및 y 인덱스를 제공하여 그리드의 셀 값을 설정하고 검색할 수 있습니다 (x 및 y 축 모두 0부터 시작하며, 너비 - 1 및 높이 - 1까지 증가합니다). 또한 특정 그리드 영역에 값을 설정하고, 단일 값을 추가하며, 주어진 영역에 대한 합계, 최대값, 최소값 및 평균값을 검색할 수 있어 이 데이터 구조는 가장 다재다능한 구조입니다.
DS 그리드 데이터 구조에 접근할 때는 항상 셀 위치에 정수 값을 사용해야 하며, 비정수 인덱스는 GameMaker에 의해 내림 처리됩니다. 필요한 경우, 확인하고자 하는 인덱스를 전달하기 전에 직접 반올림해야 합니다.
아래에 나열된 특정 함수 외에도, DS 그리드의 내용을 추가하거나 수정하기 위해 표현식(접근자)을 사용할 수 있습니다. 이 접근자는 다음과 같은 구문을 가지고 있습니다:
grid_index[# xpos, ypos]
더 많은 정보와 예제는 GML 개요 페이지의 접근자 섹션에서 확인할 수 있습니다.
함수 참조
함수 이름 | 설명 |
---|---|
ds_grid_create | 새로운 DS 그리드 생성 |
ds_grid_destroy | DS 그리드 삭제 |
ds_grid_width | 그리드의 너비 반환 |
ds_grid_height | 그리드의 높이 반환 |
ds_grid_resized | 그리드 크기 조정 |
ds_grid_clear | 그리드 초기화 |
ds_grid_set | 특정 셀에 값 설정 |
ds_grid_get | 특정 셀의 값 가져오기 |
ds_grid_get_max | 최대값 가져오기 |
ds_grid_get_mean | 평균값 가져오기 |
ds_grid_get_min | 최소값 가져오기 |
ds_grid_get_sum | 합계 가져오기 |
ds_grid_add | 특정 셀에 값 추가 |
ds_grid_multiply | 특정 셀의 값 곱하기 |
ds_grid_value_exists | 특정 값 존재 여부 확인 |
ds_grid_copy | 그리드 복사 |
ds_grid_read | 그리드 데이터 읽기 |
ds_grid_write | 그리드 데이터 쓰기 |
활용 예제
1. 그리드 생성 및 초기화
var myGrid = ds_grid_create(10, 10);
ds_grid_clear(myGrid, 0); // 모든 셀을 0으로 초기화
2. 값 설정 및 가져오기
ds_grid_set(myGrid, 2, 3, 5); // (2, 3) 위치에 5 설정
var value = ds_grid_get(myGrid, 2, 3); // (2, 3) 위치의 값 가져오기
3. 영역에 값 추가
ds_grid_add_region(myGrid, 0, 0, 5, 5, 1); // (0, 0)에서 (5, 5)까지 1 추가
4. 최대값 및 평균값 가져오기
var maxValue = ds_grid_get_max(myGrid); // 최대값 가져오기
var meanValue = ds_grid_get_mean(myGrid); // 평균값 가져오기
5. 그리드 복사
var newGrid = ds_grid_copy(myGrid); // 그리드 복사
이와 같은 다양한 기능을 통해 DS 그리드를 활용하여 복잡한 데이터 구조를 쉽게 관리할 수 있습니다.