handle_parse 함수 설명
handle_parse
함수는 문자열을 파싱하여 핸들 참조를 생성하는 기능을 제공합니다. 핸들은 특정 형식의 문자열로 표현됩니다. 이 함수는 문자열을 핸들로 변환할 수 있으며, string
함수를 사용하여 핸들의 문자열 표현을 얻고, real
함수를 사용하여 해당 핸들이 보유하고 있는 인덱스 번호를 얻을 수 있습니다.
문법
handle_parse(value_string);
인수 설명
인수 이름 | 타입 | 설명 |
---|---|---|
value_string | String | 핸들의 문자열 표현, 특정 형식으로 포맷됨 |
반환값
- 핸들 (유효하지 않은 문자열의 경우
undefined
)
예제
sprite = spr_player;
handle_as_string = string(sprite);
h = handle_parse(handle_as_string);
show_debug_message($"{sprite} ({typeof(sprite)})");
show_debug_message($"{handle_as_string} ({typeof(handle_as_string)})");
show_debug_message($"{h} ({typeof(h)})");
위의 코드는 spr_player
라는 스프라이트의 핸들을 문자열 표현(handle_as_string
)으로 변환한 다음, 다시 핸들(h
)로 변환합니다. 이후 생성된 인스턴스 변수들을 디버그 메시지로 출력하며, 각 변수의 타입도 함께 표시합니다. 출력 결과는 다음과 같습니다:
ref sprite 0 (ref)
ref sprite (string)
ref sprite 0 (ref)
이 예제에서 원래의 참조는 문자열로 변환된 후 다시 참조로 파싱되어, 원래의 참조처럼 함수에서 사용할 수 있습니다. 핸들 변수의 값은 디스플레이를 위해 암묵적으로 문자열 표현으로 변환됩니다.
활용 예제
- 게임 오브젝트 관리
gml player_handle = handle_parse(string(player)); if (player_handle != undefined) { // 플레이어 핸들을 사용하여 게임 로직 처리 }
- 동적 리소스 로딩
gml resource_string = "res_enemy"; enemy_handle = handle_parse(resource_string); if (enemy_handle != undefined) { // 적 리소스를 로드하여 사용 }
- 디버깅 및 로깅
gml debug_handle = handle_parse(string(current_object)); show_debug_message("현재 오브젝트 핸들: " + string(debug_handle));
- 상태 저장 및 복원
gml saved_state = string(current_state); restored_state = handle_parse(saved_state);
- UI 요소 관리
gml button_handle = handle_parse(string(button)); if (button_handle != undefined) { // 버튼 핸들을 사용하여 클릭 이벤트 처리 }