sequence_keyframedata_new 함수 설명
이 문서는 sequence_keyframedata_new 함수에 대한 설명입니다. 이 함수를 사용하면 새로운 키프레임 데이터 구조체를 생성할 수 있으며, 이 데이터는 특정 트랙 유형에 적용됩니다. type 인자는 이 페이지에 나열된 시퀀스 트랙 유형 상수 중 하나일 수 있습니다. 이 함수는 트랙 키프레임 데이터 구조체를 반환하며, 이후 이 구조체에 값을 추가한 후 키프레임 구조체에 할당할 수 있습니다.
문법
sequence_keyframedata_new(type);
인자 설명
| 인자 | 유형 | 설명 |
|---|---|---|
| type | Sequence Track Type Constant | 생성할 키프레임 데이터의 유형 |
반환값
- Sequence Keyframe Data Struct
예제 코드
아래 코드는 새로운 시퀀스를 생성하고 그래픽 자산 트랙을 만든 후, 트랙에 일부 키프레임 데이터를 설정하는 예제입니다.
myseq = sequence_create();
var mytracks = array_create(1);
mytracks[0] = sequence_track_new(seqtracktype_graphic);
var graphickeys = array_create(1);
graphickeys[0] = sequence_keyframe_new(seqtracktype_graphic);
graphickeys[0].frame = 0;
graphickeys[0].length = 1;
graphickeys[0].stretch = true;
graphickeys[0].disabled = false;
var graphickeydata = array_create(1);
graphickeydata[0] = sequence_keyframedata_new(seqtracktype_graphic);
graphickeydata[0].spriteIndex = spr_Platform;
graphickeydata[0].channel = 0;
graphickeys[0].channels = graphickeydata;
mytracks[0].name = "TestGraphicTrack";
mytracks[0].keyframes = graphickeys;
myseq.tracks = mytracks;
위 코드는 새로운 시퀀스를 생성하고 그래픽 트랙을 추가한 후, 해당 트랙에 키프레임 데이터를 설정합니다. 이 트랙은 인스턴스에 할당됩니다.
활용 예제
- 애니메이션 시퀀스 생성
gml var animationSeq = sequence_create(); var animationTracks = array_create(1); animationTracks[0] = sequence_track_new(seqtracktype_animation); var animationKeys = array_create(1); animationKeys[0] = sequence_keyframe_new(seqtracktype_animation); animationKeys[0].frame = 10; animationKeys[0].length = 5; animationKeys[0].stretch = false; animationKeys[0].disabled = false; var animationKeyData = array_create(1); animationKeyData[0] = sequence_keyframedata_new(seqtracktype_animation); animationKeyData[0].spriteIndex = spr_Animation; animationKeyData[0].channel = 1; animationKeys[0].channels = animationKeyData; animationTracks[0].name = "AnimationTrack"; animationTracks[0].keyframes = animationKeys; animationSeq.tracks = animationTracks; - 사운드 시퀀스 생성
gml var soundSeq = sequence_create(); var soundTracks = array_create(1); soundTracks[0] = sequence_track_new(seqtracktype_sound); var soundKeys = array_create(1); soundKeys[0] = sequence_keyframe_new(seqtracktype_sound); soundKeys[0].frame = 0; soundKeys[0].length = 2; soundKeys[0].stretch = true; soundKeys[0].disabled = false; var soundKeyData = array_create(1); soundKeyData[0] = sequence_keyframedata_new(seqtracktype_sound); soundKeyData[0].soundIndex = snd_MySound; soundKeyData[0].channel = 2; soundKeys[0].channels = soundKeyData; soundTracks[0].name = "SoundTrack"; soundTracks[0].keyframes = soundKeys; soundSeq.tracks = soundTracks; - 복잡한 시퀀스 조합
gml var complexSeq = sequence_create(); var complexTracks = array_create(2); complexTracks[0] = sequence_track_new(seqtracktype_graphic); complexTracks[1] = sequence_track_new(seqtracktype_sound); // 그래픽 트랙 키프레임 설정 var graphicKeys = array_create(1); graphicKeys[0] = sequence_keyframe_new(seqtracktype_graphic); graphicKeys[0].frame = 0; graphicKeys[0].length = 1; graphicKeys[0].stretch = true; graphicKeys[0].disabled = false; var graphicKeyData = array_create(1); graphicKeyData[0] = sequence_keyframedata_new(seqtracktype_graphic); graphicKeyData[0].spriteIndex = spr_ComplexGraphic; graphicKeyData[0].channel = 0; graphicKeys[0].channels = graphicKeyData; complexTracks[0].name = "ComplexGraphicTrack"; complexTracks[0].keyframes = graphicKeys; // 사운드 트랙 키프레임 설정 var soundKeys = array_create(1); soundKeys[0] = sequence_keyframe_new(seqtracktype_sound); soundKeys[0].frame = 0; soundKeys[0].length = 3; soundKeys[0].stretch = false; soundKeys[0].disabled = false; var soundKeyData = array_create(1); soundKeyData[0] = sequence_keyframedata_new(seqtracktype_sound); soundKeyData[0].soundIndex = snd_ComplexSound; soundKeyData[0].channel = 1; soundKeys[0].channels = soundKeyData; complexTracks[1].name = "ComplexSoundTrack"; complexTracks[1].keyframes = soundKeys; complexSeq.tracks = complexTracks;