카메라 시작 스크립트 설정
camera_set_begin_script
함수는 카메라가 할당된 모든 게임 프레임의 시작 부분에서 호출될 스크립트 함수를 설정하는 데 사용됩니다. 이 함수는 고유한 카메라 ID 값(다양한 camera_create
함수에서 반환됨)과 호출할 함수의 ID를 인수로 받습니다.
작동 순서
카메라와 실제 카메라 뷰의 렌더링 순서는 다음과 같습니다:
- 모든 보이는 활성 뷰 포트의 카메라에 대해
update
함수가 호출됩니다. - 각 뷰에 대해:
- 해당 뷰의 카메라에 대한
begin
함수가 호출됩니다. - 그 뷰에 대한 드로우 이벤트가 실행됩니다.
- 카메라의
end
함수가 호출됩니다. - 다음 활성 보이는 뷰로 이동하고 반복합니다.
문법
camera_set_begin_script(camera_id, script);
인수 설명
인수 | 타입 | 설명 |
---|---|---|
camera_id | Camera ID | 카메라를 생성할 때 반환된 고유 카메라 ID 값 |
script | Script Function | 매 게임 프레임마다 실행할 스크립트 함수 (-1은 시작 스크립트 없음) |
반환값
- N/A
예제
camera_set_begin_script(view_camera[0], beginCamera);
위 코드는 뷰 포트 [0]에 할당된 카메라의 시작 스크립트 함수를 설정합니다.
활용 예제
- 카메라 시작 시 효과 적용
gml function beginCamera() { // 카메라 시작 시 화면 효과 적용 draw_set_alpha(0.5); } camera_set_begin_script(view_camera[0], beginCamera);
- 카메라 위치 업데이트
gml function beginCamera() { // 카메라 위치를 플레이어 위치에 맞춤 camera_set_view_pos(view_camera[0], player.x, player.y); } camera_set_begin_script(view_camera[0], beginCamera);
- UI 요소 그리기
gml function beginCamera() { // 카메라 시작 시 UI 요소 그리기 draw_health_bar(player.x, player.y - 20, player.health); } camera_set_begin_script(view_camera[0], beginCamera);
- 배경 음악 시작
gml function beginCamera() { // 카메라 시작 시 배경 음악 재생 audio_play_sound(background_music, 1, true); } camera_set_begin_script(view_camera[0], beginCamera);
- 특정 조건에 따른 카메라 효과
gml function beginCamera() { if (player.score > 100) { // 점수가 100 이상일 때 특별 효과 적용 draw_set_color(c_yellow); } } camera_set_begin_script(view_camera[0], beginCamera);