게임메이커: 스튜디오(GameMaker: Studio)는 기본적인 데이터 구조체를 기본 함수로 지원합니다.
사용자는 이러한 데이터 구조체로 변수들을 보다 편하게 관리할 수가 있습니다.
현재 겜스에서 지원하는 데이터 구조체는 아래와 같습니다.
List (리스트)
Grid (그리드)
Map (맵)
Queue, Priority Queue (큐)
Stack (스택)
이번 강좌에서는 1차원 배열이라고도 할 수 있는 List 와, 비동기 이벤트에서 자주 쓰이는 Map 에 대해서 알아보고자 합니다.
리스트의 기본적인 사용방법은 위와 같습니다.
ds_list_add 를 사용하면 리스트의 인덱스가 그만큼 확보됩니다.
이제 ds_list_find_value 를 사용하면 해당 인덱스에 축적된 변수를 얻을 수가 있지요.
참고로 모든 구조체는 게임을 끝낼 때는 어떤 때든 destroy 가 되어야 합니다.
사용한 구조체는 모두 메모리를 해제해주어야 메모라 누수가 일어나지 않습니다.
리스트의 고급스러운 사용방법은 ds_list_find_index 를 활용하는 것입니다.
이 함수는 해당 리스트에 해당 변수가 있는 인덱스를 반환하는데, 이것으로 해당 인덱스를 삭제하거나 값을 변경할 수도 있습니다.
리스트에 대해 몇 가지 함수만 알려드렸는데, 사실 함수는 매우 많습니다.
셔플이라던가, 리플레이스 등이 있는데 이건 설명하지 않아도 알리라 믿습니다.
ds_map 은 어떤 값을 어떤 값과 연관 지을 때 사용합니다.
예를 들어 사과는 빨강! 바나나는 노랑! 이렇게 말이죠.
키값에 변수를 저장하고, 키값을 넣으면 변수가 나오는 형식입니다.
알아두면 필요할 때가 반드시 있는 중요한 구조체입니다.