비동기 이벤트 수행 함수 설명
event_perform_async 함수는 GameMaker에서 제공하는 비동기 이벤트를 수행하는 데 사용됩니다. 이 함수는 비동기 이벤트 상수와 DS 맵을 인자로 받아 호출된 비동기 이벤트에서 사용할 수 있는 데이터를 제공합니다.
비동기 이벤트 유형 상수
| 상수 | 설명 |
|---|---|
ev_async_web_image_load |
이미지 로드 이벤트 |
ev_async_web |
HTTP 이벤트 |
ev_async_dialog |
대화 상자 이벤트 |
ev_async_web_iap |
인앱 구매 이벤트 |
ev_async_web_cloud |
클라우드 이벤트 |
ev_async_web_networking |
네트워킹 이벤트 |
ev_async_web_steam |
스팀 이벤트 |
ev_async_social |
소셜 이벤트 |
ev_async_push_notification |
푸시 알림 이벤트 |
ev_async_save_load |
저장/로드 이벤트 |
ev_async_audio_recording |
오디오 녹음 이벤트 |
ev_async_audio_playback |
오디오 재생 이벤트 |
ev_async_audio_playback_ended |
오디오 재생 종료 이벤트 |
ev_async_system_event |
시스템 이벤트 |
비동기 이벤트가 아닌 이벤트는 event_perform() 함수를 사용하여 호출할 수 있습니다. 두 번째 인자로 지정된 DS 맵은 비동기 이벤트가 수행된 후 자동으로 파괴되므로 수동으로 파괴할 필요가 없습니다.
문법
event_perform_async(type, ds_map);
인자 설명
| 인자 | 타입 | 설명 |
|---|---|---|
type |
Async Event Type Constant | 수행할 이벤트의 유형 (위의 표 참조) |
ds_map |
DS Map ID | 호출된 이벤트에서 async_load로 사용할 DS 맵 |
반환값
N/A
예제
다음 코드는 DS 맵을 생성하고 비동기 이벤트에서 읽을 수 있는 사용자 정의 항목으로 채웁니다. 그런 다음 새로 생성된 맵을 async_load로 전달하여 비동기 소셜 이벤트를 수행합니다.
var _map = ds_map_create();
_map[? "id"] = "custom_async_event";
_map[? "result"] = true;
_map[? "data"] = { a: 13, b: 16 };
event_perform_async(ev_async_social, _map);
활용 및 응용 예제
- 이미지 로드 이벤트: 웹에서 이미지를 비동기적으로 로드하고, 로드가 완료되면 화면에 표시하는 기능을 구현할 수 있습니다.
gml var _map = ds_map_create(); _map[? "url"] = "http://example.com/image.png"; event_perform_async(ev_async_web_image_load, _map);
- 인앱 구매 처리: 사용자가 인앱 구매를 요청할 때 비동기 이벤트를 통해 구매 프로세스를 처리할 수 있습니다.
gml var _map = ds_map_create(); _map[? "product_id"] = "com.example.product"; event_perform_async(ev_async_web_iap, _map);
- 소셜 미디어 공유: 사용자가 게임 내에서 소셜 미디어에 콘텐츠를 공유할 수 있도록 비동기 소셜 이벤트를 사용할 수 있습니다.
gml var _map = ds_map_create(); _map[? "message"] = "Check out my score!"; event_perform_async(ev_async_social, _map);
- 오디오 녹음: 사용자가 음성을 녹음할 수 있도록 오디오 녹음 이벤트를 사용할 수 있습니다.
gml event_perform_async(ev_async_audio_recording, ds_map_create());
- 푸시 알림: 게임에서 푸시 알림을 설정하고 관리하는 기능을 구현할 수 있습니다.
gml var _map = ds_map_create(); _map[? "message"] = "Don't forget to check back!"; event_perform_async(ev_async_push_notification, _map);
이와 같이 event_perform_async 함수를 활용하여 다양한 비동기 이벤트를 처리할 수 있습니다.