타임라인 순간 추가 스크립트
이 문서에서는 timeline_moment_add_script
함수에 대해 설명합니다. 이 함수는 타임라인의 특정 "순간"에 스크립트 함수를 동적으로 추가할 수 있게 해줍니다. 여기서 "순간"은 게임의 한 틱(또는 스텝)을 의미합니다. 이 기능을 통해 새로운 타임라인을 생성하고, 특정 시점에 다양한 행동을 추가하거나, 이전에 생성된 타임라인 자원을 수정할 수 있습니다.
주의: 이 함수를 사용할 때 추가 인자를 요구하지 않으며, 자산 브라우저에 있는 타임라인 자산을 수정하면 이 타임라인을 사용하는 모든 인스턴스에 영향을 미칩니다. 변경 사항은 게임이 끝날 때까지 지속되며, game_restart
를 호출해도 초기화되지 않습니다.
문법
timeline_moment_add_script(ind, step, script);
인자 설명
인자 | 타입 | 설명 |
---|---|---|
ind | Timeline Asset | 순간을 추가할 타임라인의 인덱스 |
step | Real | 추가할 순간(스텝) |
script | Script Function | 순간에 추가할 스크립트 함수의 인덱스 |
반환값
- N/A
활용 예제
아래 코드는 새로운 타임라인을 생성하고, 그 인덱스를 global.tl
변수에 저장한 후, 1분 간격으로 무작위로 선택된 세 개의 스크립트를 타임라인에 추가하는 예제입니다.
global.tl = timeline_add();
var i = game_get_speed(gamespeed_fps) * 60;
repeat(3) {
timeline_moment_add_script(global.tl, i, choose(Attack_1, Attack_2, Attack_3));
i += game_get_speed(gamespeed_fps) * 60;
}
추가 활용 예제
- 타임라인에 여러 스크립트 추가하기
gml var timelineIndex = timeline_add(); for (var j = 0; j < 5; j++) { timeline_moment_add_script(timelineIndex, j * 60, Attack_1); }
- 조건에 따라 스크립트 추가하기
gml var timelineIndex = timeline_add(); if (player_health < 50) { timeline_moment_add_script(timelineIndex, 120, Heal); }
- 타임라인 수정하기
gml var existingTimeline = global.tl; timeline_moment_add_script(existingTimeline, 180, SpecialAttack);
이와 같이 timeline_moment_add_script
함수를 활용하여 게임의 타임라인을 동적으로 조정하고 다양한 행동을 추가할 수 있습니다.