surface_reset_target 함수 설명
surface_reset_target
함수는 타겟 서피스에서의 모든 후속 그리기를 화면으로 되돌리는 기능을 합니다. 이 함수를 사용하기 전에 반드시 surface_set_target
함수를 호출해야 하며, 그리기가 끝난 후에 이 함수를 호출해야 합니다. 각 서피스 타겟에 대해 이 과정을 반복해야 하며, 그렇지 않으면 화면에 아무것도 그려지지 않습니다. 모든 후속 그리기는 서피스에서 진행되기 때문입니다. 또한, 서피스 자체가 인스턴스의 그리기 이벤트에서 화면에 그려지지 않으면 아무것도 보이지 않게 됩니다.
문법
surface_reset_target();
반환값
- Boolean: 렌더 타겟이 성공적으로 리셋되었는지 여부
예제
if (view_current == 0) {
surface_set_target(surf);
with (obj_Effect) {
draw_self();
}
surface_reset_target();
} else {
draw_surface(surf, 0, 0);
}
위 코드는 현재 어떤 뷰가 그려지고 있는지를 확인합니다. 만약 view[0]
가 그려지고 있다면, 그리기 타겟을 서피스로 설정하고 obj_Effect
객체의 모든 인스턴스를 그린 후 다시 그리기 타겟을 리셋합니다. 만약 뷰가 view[0]
가 아니라면 서피스를 화면에 그립니다.
활용 예제
예제 1: 서피스를 사용한 효과 적용
// 서피스를 설정하고 효과를 적용
surface_set_target(surf);
draw_sprite(sprite_effect, 0, x, y);
surface_reset_target();
예제 2: 여러 서피스를 사용한 복잡한 장면 그리기
// 첫 번째 서피스를 설정
surface_set_target(surf1);
draw_sprite(sprite_background, 0, 0, 0);
surface_reset_target();
// 두 번째 서피스를 설정
surface_set_target(surf2);
draw_sprite(sprite_foreground, 0, 0, 0);
surface_reset_target();
// 화면에 두 서피스를 그리기
draw_surface(surf1, 0, 0);
draw_surface(surf2, 0, 0);
예제 3: 조건에 따라 서피스 그리기
if (condition) {
surface_set_target(surf);
draw_sprite(sprite_condition_true, 0, x, y);
surface_reset_target();
} else {
draw_sprite(sprite_condition_false, 0, x, y);
}
함수명 | 설명 |
---|---|
surface_reset_target | 타겟 서피스를 화면으로 리셋 |
surface_set_target | 서피스를 그리기 위한 타겟으로 설정 |
draw_surface | 서피스를 화면에 그리기 |
draw_self | 현재 인스턴스를 그리기 |
with | 특정 객체의 컨텍스트에서 코드 실행 |