알람 시스템 설명 및 활용 예제
이 문서는 GameMaker Studio의 알람 시스템에 대해 설명하며, 알람을 설정하고 사용하는 방법에 대한 간단한 예시를 제공합니다.
알람 배열
alarm은 1차원 배열로, 인스턴스가 가질 수 있는 알람의 현재 값을 얻거나 이를 설정하는 데 사용됩니다.- 각 객체 인스턴스에는 12개의 알람이 내장되어 있으며, 각 알람은 그 변수의 값이 0에 도달했을 때 실행되는 고유한 이벤트를 가지고 있습니다.
알람 작동 방식
- 알람은 매 스텝 시작 시 카운트 다운됩니다. 이는 Begin Step 이벤트 후, 메인 Step 이벤트 전, 그리고 프레임이 렌더링되기 전에 발생합니다.
- 예를 들어 Begin Step 이벤트에서 알람을 1로 설정하면, 동일한 프레임에서 해당 이벤트가 실행됩니다. 반면 Step 이벤트에서 1로 설정하면, 다음 프레임에서 실행됩니다.
- 알람이 0에 도달하면 이벤트가 트리거되지만, 알람 자체는 다음 스텝에서 -1로 줄어듭니다. 따라서 알람을 중지할 경우 -1로 설정해야 합니다.
- 알람 시간은 게임 스텝으로 계산되며, 30은 30 스텝, 60은 60 스텝을 의미합니다.
- 알람에 아무 코드나 동작이 없으면 실행되지 않지만, 코멘트만 있어도 알람은 카운트 다운됩니다.
알람 설정 방법
alarm[index]
- 반환값: 알람이 실행 중이지 않으면 -1
활용 예제
아래는 알람을 설정하고 사용하는 간단한 예제입니다.
if (canshoot) {
if (keyboard_check_pressed(vk_space)) {
canshoot = false;
alarm[0] = game_get_speed(gamespeed_fps); // FPS 속도에 따라 알람 설정
instance_create_layer(x, y, "Bullets", obj_Bullet); // 총알 생성
}
}
알람 활용 예제 테이블
| 예제 | 설명 |
|---|---|
| 알람으로 슈팅 지연 | 알람을 사용하여 캐릭터가 발사한 뒤 일정 시간 동안 다시 발사할 수 없도록 만든다. |
| 게임 내 이벤트 트리거 | 특정 시간이 지나면 게임 내 이벤트 (예: 보스 등장)를 알람으로 설정한다. |
| 애니메이션 제어 | 알람을 사용하여 스프라이트 애니메이션을 일정 시간동안만 실행 후 다음 애니메이션으로 전환한다. |
| 적 AI 패턴 | 적의 행동을 알람으로 제어하여 일정 시간마다 패턴을 바꾼다. |
이러한 알람 시스템은 게임 로직에서 매우 유용하게 활용되며, 인스턴스의 이벤트 제어 및 동작 지연 등을 손쉽게 처리할 수 있습니다.