ds_list_copy 함수 설명 및 활용 예제
함수 설명
ds_list_copy
함수는 하나의 리스트(소스)의 내용을 다른 리스트(대상)로 복사하는 기능을 제공합니다. 두 리스트는 미리 생성되어 있어야 하며, 대상 리스트에 이미 정보가 있는 경우, 이 리스트는 먼저 비워집니다. 최종적으로 두 개의 독립적인 리스트가 동일한 정보를 포함하게 됩니다.
문법
ds_list_copy(destination, source);
인자 설명
인자 | 타입 | 설명 |
---|---|---|
destination | DS List | 복사될 리스트의 핸들 |
source | DS List | 복사할 리스트의 핸들 |
반환값
- N/A
예제 코드
다음 코드는 DS 리스트가 비어 있는지 확인하고, 비어 있지 않다면 기존 리스트의 내용을 새로운 리스트로 복사한 후, 원래 리스트를 비우는 예제입니다.
if (!ds_list_empty(main_list)) {
old_list = ds_list_create();
ds_list_copy(old_list, main_list);
ds_list_clear(main_list);
}
활용 예제
- 게임 상태 저장: 게임의 현재 상태를 저장하기 위해 사용자가 진행 중인 리스트를 복사하여 백업할 수 있습니다.
gml if (!ds_list_empty(current_game_state)) { backup_game_state = ds_list_create(); ds_list_copy(backup_game_state, current_game_state); }
- 레벨 데이터 복사: 특정 레벨의 데이터를 다른 레벨로 복사하여 유사한 레벨을 만들 때 유용합니다.
gml if (!ds_list_empty(level_data)) { new_level_data = ds_list_create(); ds_list_copy(new_level_data, level_data); }
- 아이템 목록 관리: 플레이어의 아이템 목록을 복사하여 거래나 교환을 위한 임시 목록을 만들 수 있습니다.
gml if (!ds_list_empty(player_items)) { trade_items = ds_list_create(); ds_list_copy(trade_items, player_items); }
- AI 행동 복사: AI의 행동 패턴을 복사하여 다른 AI에게 적용할 수 있습니다.
gml if (!ds_list_empty(ai_behavior)) { new_ai_behavior = ds_list_create(); ds_list_copy(new_ai_behavior, ai_behavior); }
- UI 상태 복사: UI 요소의 상태를 복사하여 다른 UI 요소에 적용할 수 있습니다.
gml if (!ds_list_empty(ui_states)) { temp_ui_states = ds_list_create(); ds_list_copy(temp_ui_states, ui_states); }