DS 큐 읽기 함수 해설
ds_queue_read
함수는 이전에 ds_queue_write()
를 사용하여 문자열로 저장된 DS 큐를 재생성하는 데 사용됩니다. 이 함수를 사용하기 위해서는 먼저 문자열을 읽어들일 새로운 DS 큐를 생성해야 하며, 만약 DS 큐가 이미 존재하고 정보가 저장되어 있다면, 읽기 전에 해당 정보는 지워집니다. 이 함수는 게임의 저장/로드 메커니즘을 만들 때 매우 중요합니다.
주의: 지정된 DS 문자열이 GameMaker: Studio 1.2.x 런타임(또는 이전 버전)에서 작성된 경우, 선택적 인수 "legacy"를 true
로 설정해야 합니다. 문자열 형식이 그 이후로 변경되었기 때문입니다.
문법
ds_queue_read(id, str [, legacy]);
인수 설명
인수 | 유형 | 설명 |
---|---|---|
id | DS 큐 ID | 읽어들일 데이터 구조의 핸들입니다. |
str | 문자열 | 읽어들일 문자열입니다. |
legacy | 불리언 | 선택적 인수로, true , false 또는 생략 가능입니다. |
반환값
N/A
활용 예제
아래의 코드는 DS 큐를 생성하고, 인니파일에서 문자열을 읽어 DS 큐에 저장하는 예제입니다.
queue = ds_queue_create();
ini_open("save.ini");
var str = ini_read_string("Queues", "0", "");
if (str != "") {
ds_queue_read(queue, str);
}
ini_close();
이 코드는 큐를 생성하고 그 인덱스를 "queue" 변수에 저장합니다. 그런 다음 인니파일을 열고 문자열을 읽어, 문자열이 비어있지 않은지 확인한 후, 새로 생성된 DS 큐에 문자열을 읽어들입니다.
추가 활용 예제
- 게임 상태 저장 및 불러오기
gml // 게임 상태 저장 var save_data = ds_queue_create(); ds_queue_write(save_data, player_position); ds_queue_write(save_data, player_health); var save_string = ds_queue_write(save_data); ini_open("save.ini"); ini_write_string("Game", "SaveData", save_string); ini_close();
- 게임 시작 시 데이터 로드
gml // 게임 시작 시 데이터 로드 var load_data = ds_queue_create(); ini_open("save.ini"); var load_string = ini_read_string("Game", "SaveData", ""); if (load_string != "") { ds_queue_read(load_data, load_string); player_position = ds_queue_read(load_data); player_health = ds_queue_read(load_data); } ini_close();
- 큐의 내용 확인
gml // 큐의 내용 확인 var item_count = ds_queue_size(queue); for (var i = 0; i < item_count; i++) { var item = ds_queue_read(queue); show_debug_message("Item " + string(i) + ": " + string(item)); }
이 예제들은 DS 큐를 활용하여 게임의 상태를 저장하고 불러오는 방법을 보여줍니다.