시간 소스 생성 함수 설명
이 문서는 새로운 시간 소스를 생성하는 함수에 대한 설명입니다. 시간 소스를 생성하는 것은 자동으로 시작되지 않으며, time_source_start()
를 호출해야 활성화됩니다. 기본적으로 새로운 시간 소스는 한 번만 실행되며, 반복 횟수를 지정하지 않으면 종료됩니다. 더 이상 필요하지 않을 경우 time_source_destroy()
를 사용하여 시간 소스를 삭제해야 합니다.
함수 인자 설명
인자 이름 | 타입 | 설명 |
---|---|---|
parent | Time Source | 새로운 시간 소스를 제어하는 부모 시간 소스. time_source_global , time_source_game 또는 기존의 사용자 정의 시간 소스일 수 있습니다. |
period | Real | 시간 소스가 실행되는 기간. 초 또는 프레임으로 표현될 수 있습니다. 프레임 단위를 사용할 경우 정수여야 하며, 1보다 작은 값은 1로 반올림됩니다. |
units | Time Source Unit Constant | 기간이 표현되는 단위. time_source_units_seconds 또는 time_source_units_frames 중 하나입니다. |
callback | Method or Script Function | 시간 소스가 만료될 때 호출되는 메서드 또는 스크립트 함수입니다. |
args | Array (옵션) | 메서드 호출 시 전달할 인자를 포함하는 배열입니다. 배열 자체가 전달되는 것이 아니라 각 요소가 개별 인자로 전달됩니다. |
repetitions | Real (옵션) | 시간 소스가 반복되는 횟수입니다. 기본값은 1이며, -1로 설정하면 무한 반복됩니다. |
expiry_type | Time Source Expiry Constant (옵션) | 시간 소스가 만료되는 방식입니다. time_source_expire_nearest 또는 time_source_expire_after 중 하나입니다. |
함수 구문
time_source_create(parent, period, units, callback, [args, repetitions, expiry_type]);
활용 예제
예제 1: 인스턴스 파괴
var _my_method = function() {
instance_destroy();
}
time_source = time_source_create(time_source_game, 300, time_source_units_frames, _my_method);
time_source_start(time_source);
이 예제에서는 300 프레임 후에 인스턴스가 스스로 파괴되도록 설정합니다. 먼저 instance_destroy()
를 호출하는 메서드를 생성하고, 게임 시간 소스를 상속받는 새로운 시간 소스를 생성합니다. 마지막으로 시간 소스를 시작합니다.
예제 2: 매초 메시지 출력
var _my_method = function() {
show_debug_message("A second has passed!");
}
global.time_per_second = time_source_create(time_source_game, 1, time_source_units_seconds, _my_method, [], -1, time_source_expire_after);
time_source_start(global.time_per_second);
이 예제에서는 매초마다 "A second has passed!"라는 메시지를 출력하는 글로벌 시간 소스를 생성합니다. 먼저 출력 로그에 메시지를 출력하는 메서드를 생성하고, 1초 주기로 새로운 시간 소스를 생성합니다. 반복 횟수는 -1로 설정하여 무한히 반복되도록 하며, 만료 타입은 만료 후 첫 번째 프레임에서 콜백이 실행되도록 설정합니다. 마지막으로 시간 소스를 시작합니다.