event_perform 함수 설명
event_perform 함수는 특정 이벤트에서 지정된 인수로 코드를 실행합니다. 이 함수는 코드가 실행되는 인스턴스에 대해 작동합니다. 다양한 이벤트를 완전히 시뮬레이션할 수 있는 여러 옵션이 있지만, 이 함수는 이벤트 내의 모든 코드를 실행할 뿐이며, 게임이 수동으로 트리거되도록 수정하지는 않습니다.
예를 들어, ev_keypress 이벤트를 수행하면 해당 이벤트가 트리거되지만, 관련된 키가 눌렸다고 인식되지 않습니다. 또는 ev_alarm 이벤트를 수행하면 알람 카운터가 -1로 설정되지 않고 계속 카운트다운됩니다.
비동기 이벤트는 event_perform_async를 사용하여 호출할 수 있습니다.
이벤트 타입 상수 및 번호
아래 표는 GameMaker에서 이벤트 타입을 참조하기 위한 모든 상수와 그 번호 값을 정리한 것입니다. 이벤트 자체는 굵은 글씨로 표시되며, 이는 event_type 변수의 반환 값과 동일합니다. 번호 값은 기울임 글씨로 표시되며, 이는 event_number 변수의 반환 값과 동일합니다.
| 이벤트 타입 상수 | 이벤트 번호 상수 | 설명 |
|---|---|---|
| ev_create | 생성 이벤트 | |
| ev_destroy | 파괴 이벤트 | |
| ev_cleanup | 정리 이벤트 | |
| ev_step | 스텝 이벤트 | |
| ev_step_normal | 일반 스텝 | |
| ev_step_begin | 시작 스텝 | |
| ev_step_end | 종료 스텝 | |
| ev_alarm | 알람 이벤트 | |
| ev_keyboard | 키보드 이벤트 | |
| ev_mouse | 마우스 이벤트 | |
| ev_collision | 충돌 이벤트 | |
| ev_draw | 드로우 이벤트 |
함수 문법
event_perform(type, numb);
인수 설명
- type: 이벤트 타입 상수 (위 표 참조)
- numb: 특정 이벤트 상수 또는 값. 이벤트에 서브 이벤트가 있더라도 "기본" 이벤트는 항상 이벤트 번호 0으로 참조됩니다.
예제
- 키보드 'W' 키 이벤트 수행
gml event_perform(ev_keypress, ord("W"));이 코드는 'W' 키가 눌린 것과 관련된 이벤트를 수행합니다(실제로 키보드 입력을 생성하지 않음). - 시작 스텝 이벤트 수행
gml event_perform(ev_step, ev_step_begin);이 코드는 시작 스텝 이벤트를 수행합니다. 스텝 이벤트에서 호출되면 시작 스텝 이벤트 코드가 두 번 실행됩니다. - 인스턴스 생성 이벤트 수행
gml event_perform(ev_create, 0);이 코드는 인스턴스의 생성 이벤트를 수행합니다.
추가 활용 예제
- 알람 이벤트 수행
gml event_perform(ev_alarm, 0); // 첫 번째 알람 이벤트 수행 - 마우스 클릭 이벤트 수행
gml event_perform(ev_mouse, ev_left_press); // 왼쪽 버튼 클릭 이벤트 수행 - 사용자 정의 이벤트 수행
gml event_perform(ev_user0, 0); // 사용자 정의 이벤트 0 수행
이와 같은 방식으로 event_perform 함수를 활용하여 다양한 이벤트를 프로그래밍할 수 있습니다.