ds_queue_clear 함수 설명 및 활용 예제
함수 설명
ds_queue_clear
함수는 주어진 큐 데이터 구조에서 모든 데이터를 지우는 기능을 제공합니다. 이 함수는 데이터 구조 자체를 파괴하지 않으며, 단순히 모든 데이터를 삭제하고 빈 큐를 반환합니다. 데이터 구조를 파괴하려면 ds_queue_destroy()
함수를 사용해야 합니다.
문법
ds_queue_clear(id);
인수
인수 | 타입 | 설명 |
---|---|---|
id | DS Queue ID | 지울 데이터 구조의 핸들 |
반환값
- N/A (반환값 없음)
활용 예제
아래의 코드는 특정 변수가 특정 값에 도달했는지를 확인하고, 도달했을 경우 "command_queue"라는 변수에 인덱스된 DS 큐를 지우고, 알람을 설정하며 변수를 0으로 초기화합니다.
if (count = 15) && (!ds_queue_empty(command_queue)) {
ds_queue_clear(command_queue);
alarm[0] = game_get_speed(gamespeed_fps);
ai_count = 0;
}
추가 활용 예제
- 게임 이벤트 관리
- 게임에서 발생하는 이벤트를 큐에 저장하고, 특정 조건에서 모든 이벤트를 지우고 새로운 이벤트를 시작할 수 있습니다.
gml if (game_state == STATE_NEW_ROUND) { ds_queue_clear(event_queue); }
- AI 행동 초기화
- AI의 행동을 큐에 저장하고, 특정 상황에서 모든 행동을 초기화할 수 있습니다.
gml if (player_nearby) { ds_queue_clear(ai_actions); }
- 레벨 재시작
- 레벨을 재시작할 때 모든 큐를 지워서 이전 상태를 초기화할 수 있습니다.
gml if (restart_level) { ds_queue_clear(level_queue); }
- 타이머 리셋
- 타이머가 만료되었을 때 큐를 지워서 새로운 타이머를 시작할 수 있습니다.
gml if (timer_expired) { ds_queue_clear(timer_queue); }
- 사용자 입력 처리
- 사용자의 입력을 큐에 저장하고, 특정 조건에서 모든 입력을 지울 수 있습니다.
gml if (input_cleared) { ds_queue_clear(input_queue); }