DS Priority 재읽기 함수 설명
이 문서에서는 ds_priority_read
함수에 대해 설명합니다. 이 함수는 이전에 문자열로 저장된 DS 우선순위를 재구성하는 데 사용됩니다. 이 함수를 사용하기 위해서는 먼저 새로운 DS 우선순위를 생성해야 하며, 만약 해당 DS 우선순위가 이미 존재하고 정보가 저장되어 있다면, 읽기 전에 해당 정보는 지워집니다. 이 함수는 게임의 저장/로드 메커니즘을 만들 때 매우 중요합니다.
함수 구문
ds_priority_read(id, str, [legacy]);
인수 설명
인수 | 유형 | 설명 |
---|---|---|
id | DS Priority ID | 작성할 데이터 구조의 핸들 |
str | String | 읽어올 문자열 |
legacy | Boolean | 선택 사항으로 true, false 또는 생략 가능 |
반환 값
- N/A
활용 예제
아래는 ds_priority_read
함수를 사용하는 예제 코드입니다.
// 새로운 우선순위 큐 생성
p_queue = ds_priority_create();
// ini 파일 열기
ini_open("save.ini");
// 문자열 읽기
var str = ini_read_string("P_Queues", "0", "");
// 문자열이 비어있지 않은지 확인
if (str != "") {
// 문자열을 새로 생성한 DS 우선순위에 읽기
ds_priority_read(p_queue, str);
}
// ini 파일 닫기
ini_close();
위의 코드는 우선순위 큐를 생성하고, 그 인덱스를 변수 "p_queue"에 저장합니다. 이후 ini 파일을 열고 문자열을 읽어오며, 먼저 문자열이 비어있지 않은지 확인합니다. 이 문자열은 새로 생성된 DS 우선순위에 읽혀집니다.
추가 활용 예제
- 게임 상태 저장 및 불러오기 ```gml // 게임 상태를 저장하는 함수 function save_game() { var str = ds_priority_write(p_queue); // 현재 우선순위 큐를 문자열로 변환 ini_open("save.ini"); ini_write_string("P_Queues", "0", str); // 문자열을 ini 파일에 저장 ini_close(); }
// 게임 상태를 불러오는 함수 function load_game() { ini_open("save.ini"); var str = ini_read_string("P_Queues", "0", ""); if (str != "") { ds_priority_read(p_queue, str); // 문자열을 우선순위 큐에 읽기 } ini_close(); } ```
- 우선순위 큐에 데이터 추가 및 삭제 ```gml // 데이터 추가 ds_priority_add(p_queue, "데이터1", 1); ds_priority_add(p_queue, "데이터2", 2);
// 데이터 삭제 ds_priority_delete(p_queue, "데이터1"); ```
- 우선순위 큐의 모든 데이터 출력
gml var count = ds_priority_size(p_queue); for (var i = 0; i < count; i++) { var item = ds_priority_find_value(p_queue, i); show_message(item); // 각 데이터를 메시지로 출력 }
이와 같은 방식으로 ds_priority_read
함수를 활용하여 게임의 데이터 저장 및 로드 기능을 구현할 수 있습니다.