타임라인(Timelines)
타임라인은 게임 내 이벤트를 제어하는 데 사용되며, "모멘트(moment)"를 기반으로 합니다. 여기서 "모멘트"는 단순히 하나의 게임 스텝을 의미합니다. 타임라인은 자산 브라우저(Asset Browser)에서 타임라인 편집기(Timeline Editor)를 사용하여 객체를 만드는 것과 유사한 방식으로 생성됩니다. 즉, 타임라인을 생성한 후, 필요한 각 모멘트에 대해 실행할 코드나 GML 비주얼 아이콘을 추가합니다.
타임라인을 생성한 후에는 코드를 통해 타임라인을 시작, 정지 및 조작할 수 있습니다. 또한, 개별 모멘트를 수정하기 위해 스크립트 함수를 정의하고 이를 컨트롤러 객체에서 동적으로 타임라인에 추가할 수 있습니다. 이는 게임을 만들 때 매우 강력하고 다재다능한 도구입니다.
타임라인 관련 함수
다음 함수들은 게임 내에서 타임라인을 추가하고 조작하는 데 사용됩니다:
| 함수 이름 | 설명 |
|---|---|
| timeline_exists | 타임라인이 존재하는지 확인합니다. |
| timeline_get_name | 타임라인의 이름을 가져옵니다. |
| timeline_add | 새로운 타임라인을 추가합니다. |
| timeline_delete | 타임라인을 삭제합니다. |
| timeline_moment_add_script | 모멘트에 스크립트를 추가합니다. |
| timeline_moment_clear | 모멘트를 초기화합니다. |
| timeline_clear | 타임라인을 초기화합니다. |
| timeline_size | 타임라인의 크기를 가져옵니다. |
| timeline_max_moment | 타임라인의 최대 모멘트를 가져옵니다. |
내장 변수
다음 변수들은 모든 인스턴스에서 타임라인 작업을 쉽게 하고 제어할 수 있도록 도와줍니다:
| 변수 이름 | 설명 |
|---|---|
| timeline_index | 현재 타임라인의 인덱스를 나타냅니다. |
| timeline_running | 타임라인이 실행 중인지 여부를 나타냅니다. |
| timeline_speed | 타임라인의 속도를 설정합니다. |
| timeline_position | 현재 타임라인의 위치를 나타냅니다. |
| timeline_loop | 타임라인이 루프되는지 여부를 나타냅니다. |
활용 예제
타임라인을 활용하는 다양한 예제는 다음과 같습니다:
// 타임라인 생성
var myTimeline = timeline_add("MyTimeline");
// 타임라인 시작
timeline_start(myTimeline);
// 타임라인 정지
timeline_stop(myTimeline);
// 모멘트에 스크립트 추가
timeline_moment_add_script(myTimeline, 0, "myScript");
// 타임라인 속도 설정
timeline_speed = 2;
// 타임라인 위치 설정
timeline_position = 1;
// 타임라인 루프 설정
timeline_loop = true;
이와 같은 방식으로 타임라인을 사용하여 게임의 다양한 이벤트를 제어하고, 더 복잡한 게임 로직을 구현할 수 있습니다.