ds_priority_destroy 함수 설명
ds_priority_destroy
함수는 주어진 우선순위 큐 데이터 구조를 메모리에서 제거하여 사용 중이던 리소스를 해제하고, 포함된 모든 값을 삭제합니다. 이 함수는 DS 우선순위 큐 사용이 끝났을 때 항상 호출해야 하며, 메모리 누수를 방지하여 게임이 느려지거나 충돌하는 것을 막을 수 있습니다.
문법
ds_priority_destroy(id);
인자
인자 | 타입 | 설명 |
---|---|---|
id | DS Priority | 제거할 우선순위 큐 데이터 구조 |
반환값
- N/A
예제
if (lives == 0) {
ds_priority_destroy(AI_queue);
AI_queue = -1;
room_goto(rm_Menu);
}
위의 코드는 내장된 전역 변수 lives
의 값을 확인하고, 만약 0이라면 AI_queue
변수에 참조된 DS 우선순위 큐를 파괴한 후 방을 변경합니다.
활용 예제
예제 1: 게임 오버 시 우선순위 큐 제거
if (game_over) {
ds_priority_destroy(enemy_queue);
enemy_queue = -1;
}
이 코드는 게임 오버 상태일 때 적의 우선순위 큐를 제거합니다.
예제 2: 레벨 클리어 시 우선순위 큐 정리
if (level_cleared) {
ds_priority_destroy(item_queue);
item_queue = -1;
}
레벨이 클리어되면 아이템의 우선순위 큐를 제거합니다.
예제 3: 특정 조건에서 우선순위 큐 제거
if (score > 1000) {
ds_priority_destroy(bonus_queue);
bonus_queue = -1;
}
점수가 1000을 초과할 때 보너스 우선순위 큐를 제거합니다.
예제 4: 게임 종료 시 모든 우선순위 큐 정리
ds_priority_destroy(player_queue);
ds_priority_destroy(enemy_queue);
player_queue = -1;
enemy_queue = -1;
게임 종료 시 모든 우선순위 큐를 정리하여 메모리를 해제합니다.