기타 이벤트 설명
이 문서에서는 Object Editor의 기타 이벤트 카테고리에 포함된 다양한 이벤트에 대해 설명합니다.
1. 방 밖으로 나가기 (Outside Room)
- 설명: 인스턴스가 방 밖으로 나갈 때 트리거됩니다. 인스턴스의 스프라이트 속성을 기반으로 하며, 스프라이트가 화면 밖으로 완전히 나갈 때만 발생합니다. 스프라이트가 없으면 인스턴스의 위치를 사용하여 x 또는 y 위치가 방을 벗어날 때 이벤트가 발생합니다.
- 용도: 총알과 같은 객체를 파괴하는 데 사용되어, 무한히 날아가는 총알로 인해 게임이 느려지는 것을 방지합니다.
- 트리거 조건: 인스턴스가 방을 처음 떠날 때 한 번만 발생합니다.
2. 경계 교차 (Intersect Boundary)
- 설명: 인스턴스가 방의 내부 경계에 "닿을" 때 트리거됩니다. 스프라이트의 일부가 방 경계와 교차할 때 발생합니다.
- 용도: 인스턴스가 방 안으로 다시 튕겨 들어가도록 지시하는 데 사용됩니다.
3. 카메라 뷰 (Views)
- 설명: 카메라 뷰는 방 편집기에서 정의되며, 큰 방의 작은 영역만을 보여줍니다. 이 카테고리는 방 밖으로 나가기와 경계 교차의 두 개의 하위 카테고리를 포함합니다.
- 트리거 조건: 카메라 뷰의 경계를 기준으로 인스턴스가 체크됩니다.
4. 게임 시작 (Game Start)
- 설명: 게임 전체에서 한 번만 트리거되는 특별한 이벤트입니다. 첫 번째 방에 존재하는 인스턴스에서만 발생합니다.
- 용도: 전역 변수를 초기화하거나 음악을 시작하고 파일을 읽는 등의 작업에 사용됩니다.
5. 게임 종료 (Game End)
- 설명: 게임이 종료되기 직전에 한 번만 트리거됩니다. 게임이 닫힐 때 방에 있어야 합니다.
- 용도: 데이터를 저장하는 데 사용됩니다.
6. 방 시작 (Room Start)
- 설명: 방이 시작될 때 모든 인스턴스에서 발생합니다. 생성 이벤트 이후에 발생합니다.
7. 방 종료 (Room End)
- 설명: 방이 종료될 때 모든 인스턴스에서 발생합니다.
- 용도: 레벨 종료 후 리소스를 삭제하거나 메모리 누수를 방지하는 데 유용합니다.
8. 애니메이션 종료 (Animation End)
- 설명: 애니메이션의 마지막 프레임에 도달했을 때 트리거됩니다.
- 용도: 폭발 객체와 같이 애니메이션이 끝나면 인스턴스를 파괴하는 데 사용됩니다.
9. 애니메이션 업데이트 (Animation Update)
- 설명: 스켈레탈 애니메이션 함수와 함께 사용됩니다. 스프라이트가 그려질 때마다 트리거됩니다.
10. 애니메이션 이벤트 (Animation Event)
- 설명: 스켈레탈 애니메이션 함수와 함께 사용됩니다. 특정 이벤트가 발생할 때 데이터를 전송합니다.
- 용도: 애니메이션 프로그램에서 정의된 이벤트에 대한 정보를 파싱하는 데 사용됩니다.
11. 경로 종료 (Path Ended)
- 설명: 인스턴스가 경로의 끝에 도달했을 때 트리거됩니다.
- 용도: 타워 디펜스 게임에서 인스턴스를 파괴하고 목표 객체의 체력을 감소시키는 데 사용됩니다.
12. 사용자 이벤트 (User Events)
- 설명: 자동으로 트리거되지 않고, 코드나 액션으로 호출해야 하는 특별한 이벤트입니다. 총 16개의 사용자 이벤트가 있습니다.
- 용도: 게임 루프에서 언제든지 호출할 수 있어 유용합니다.
13. 브로드캐스트 메시지 (Broadcast Message)
- 설명: 스프라이트나 시퀀스가 브로드캐스트 메시지를 생성할 때 트리거됩니다.
14. 배경화면 이벤트 (Wallpaper Events)
- 설명: Wallpaper Companion App에 의해 트리거됩니다.
이벤트 이름 | 설명 | 용도 |
---|---|---|
방 밖으로 나가기 | 인스턴스가 방 밖으로 나갈 때 트리거됩니다. | 총알 파괴 |
경계 교차 | 인스턴스가 방의 내부 경계에 닿을 때 트리거됩니다. | 방 안으로 튕겨 들어가기 |
게임 시작 | 게임 시작 시 한 번만 트리거됩니다. | 전역 변수 초기화, 음악 시작 |
게임 종료 | 게임 종료 직전에 한 번만 트리거됩니다. | 데이터 저장 |
방 시작 | 방이 시작될 때 모든 인스턴스에서 발생합니다. | 초기화 작업 |
방 종료 | 방이 종료될 때 모든 인스턴스에서 발생합니다. | 리소스 삭제, 메모리 누수 방지 |
애니메이션 종료 | 애니메이션의 마지막 프레임에 도달했을 때 트리거됩니다. | 인스턴스 파괴 |
애니메이션 업데이트 | 스켈레탈 애니메이션 함수와 함께 사용됩니다. | 스프라이트 변경 |
애니메이션 이벤트 | 특정 이벤트가 발생할 때 데이터를 전송합니다. | 애니메이션 정보 파싱 |
경로 종료 | 인스턴스가 경로의 끝에 도달했을 때 트리거됩니다. | 인스턴스 파괴, 목표 체력 감소 |
사용자 이벤트 | 코드나 액션으로 호출해야 하는 이벤트입니다. | 사용자 정의 이벤트 생성 |
브로드캐스트 메시지 | 브로드캐스트 메시지를 생성할 때 트리거됩니다. | 메시지 전송 |
배경화면 이벤트 | Wallpaper Companion App에 의해 트리거됩니다. | 배경화면 관련 작업 |
활용 예제
// 방 밖으로 나가기 이벤트 예제
||position_x > room_width||position_y < 0||
|---|---|---|---|---|
instance_destroy(); // 인스턴스 파괴
}
// 경계 교차 이벤트 예제
||
|---|
speed = -speed; // 반대 방향으로 튕겨 나가기
}
// 게임 시작 이벤트 예제
global.score = 0; // 전역 점수 초기화
audio_play_sound(snd_background, 1, true); // 배경 음악 시작
// 게임 종료 이벤트 예제
ini_open("savefile.ini"); // 저장 파일 열기
ini_write_real("GameData", "Score", global.score); // 점수 저장
ini_close(); // 파일 닫기
// 애니메이션 종료 이벤트 예제
if (image_index == image_number - 1) {
instance_destroy(); // 애니메이션 종료 후 인스턴스 파괴
}
// 사용자 이벤트 예제
event_user(0); // 사용자 이벤트 0 호출
이 문서에서는 다양한 이벤트와 그 활용 방법에 대해 설명하였습니다. 각 이벤트는 게임 개발에서 중요한 역할을 하며, 적절한 사용이 필요합니다.