시간 소스 만료 유형 설명
이 문서는 시간 소스(Time Source)의 만료 유형에 대해 설명합니다. 시간 소스는 게임에서 특정 시간에 이벤트를 발생시키기 위해 사용됩니다. 만료 유형에 따라 이벤트가 발생하는 시점이 달라집니다.
만료 유형
상수 | 설명 | 값 |
---|---|---|
time_source_expire_nearest |
시간 소스는 만료 시간에 가장 가까운 프레임에서 만료됩니다. | 0 |
time_source_expire_after |
시간 소스는 만료 시간 이후의 첫 번째 프레임에서 만료됩니다. | 1 |
시간 소스의 동작 방식
- 초 단위 사용: 초를 단위로 사용하는 시간 소스는 항상 게임 프레임에서 만료되지 않을 수 있습니다. 게임 프레임이 처리된 후에 만료될 수 있지만, 새로운 프레임이 처리되기 전에 만료될 수 있습니다.
- 콜백 실행: 시간 소스의 콜백은 게임 프레임에서만 실행될 수 있으므로, 만료 유형은 콜백이 실행되는 시점을 제어합니다. 만약 두 프레임 사이에서 만료된다면, 어떤 프레임에서 콜백이 실행되는지가 중요합니다.
만료 유형에 따른 콜백 실행
time_source_expire_nearest
사용 시:- 콜백은 만료 시간에 가장 가까운 프레임에서 실행됩니다. 이는 만료 시간 이전의 프레임이거나 이후의 프레임일 수 있습니다.
time_source_expire_after
사용 시:- 콜백은 항상 만료 시간 이후의 프레임에서 실행됩니다.
프레임 내에서의 시간 소스 업데이트
프레임 동안 시간 소스는 "틱(tick)" 처리되며, 콜백은 Begin Step과 Step 이벤트 사이에서 실행됩니다.
활용 예제
예제 1: 시간 소스 설정
var my_time_source = time_source_create();
time_source_set_expiry(my_time_source, 5); // 5초 후 만료
time_source_set_expiry_type(my_time_source, time_source_expire_after);
예제 2: 콜백 함수 정의
function my_callback() {
show_message("시간 소스가 만료되었습니다!");
}
time_source_set_callback(my_time_source, my_callback);
예제 3: 게임 루프에서 시간 소스 사용
if (time_source_is_expired(my_time_source)) {
// 만료된 경우 처리
my_callback();
}
이 문서에서는 시간 소스의 만료 유형과 그에 따른 콜백 실행 방식에 대해 설명했습니다. 다양한 활용 예제를 통해 시간 소스를 효과적으로 사용할 수 있는 방법을 제시했습니다.