surface_copy_part 함수 설명
surface_copy_part
함수는 한 서피스에서 이미지를 가져와 다른 서피스의 지정된 위치에 복사하는 기능을 제공합니다. 이때 (0, 0) 위치는 대상 서피스의 왼쪽 상단 모서리를 의미합니다. 복사할 위치의 x, y 좌표와 복사할 영역의 너비와 높이를 지정할 수 있습니다. 주의할 점은 이 좌표가 서피스 크기를 기준으로 하며, 서피스가 방 안에서 그려지는 위치와는 무관하다는 것입니다. 만약 대상 서피스에 이미 정보가 있다면, 복사된 내용으로 덮어쓰게 되며, 이 함수는 원본 서피스에는 영향을 주지 않습니다.
문법
surface_copy_part(destination, x, y, source, xs, ys, ws, hs);
매개변수 설명
매개변수 | 타입 | 설명 |
---|---|---|
destination | Surface | 다른 서피스를 복사할 대상 서피스 |
x | Real | 복사할 x 위치 |
y | Real | 복사할 y 위치 |
source | Surface | 복사할 원본 서피스 |
xs | Real | 원본 서피스에서 복사할 x 위치 |
ys | Real | 원본 서피스에서 복사할 y 위치 |
ws | Real | 원본 서피스에서 복사할 영역의 너비 |
hs | Real | 원본 서피스에서 복사할 영역의 높이 |
반환값
N/A
활용 예제
아래 코드는 현재 그려지고 있는 뷰를 확인하고, 만약 뷰[0]이라면 temp_surf
에서 surf
로 서피스를 복사합니다. 복사되는 영역은 마우스의 상대 위치에 따라 결정됩니다. 현재 뷰가 뷰[0]이 아닌 경우에는 surf
가 화면에 그려집니다.
if (view_current == 0) {
var _cam1_x = camera_get_view_x(view_camera[1]);
var _cam1_y = camera_get_view_y(view_camera[1]);
surface_copy_part(surf, 0, 0, temp_surf, 0, 0, _cam1_x - mouse_x, _cam1_y - mouse_y);
} else {
draw_surface(surf, 0, 0);
}
추가 활용 예제
- 서피스 복사 후 효과 적용하기
// 서피스를 복사한 후 블러 효과 적용
surface_copy_part(surf, 0, 0, temp_surf, 0, 0, 100, 100);
draw_surface(surf, 0, 0);
- 마우스 위치에 따라 서피스 복사하기
// 마우스 위치에 따라 서피스를 복사
var mouse_x = mouse_x;
var mouse_y = mouse_y;
surface_copy_part(surf, mouse_x, mouse_y, temp_surf, 0, 0, 50, 50);
- 다양한 서피스에서 복사하기
// 여러 서피스에서 복사하여 하나의 서피스에 합치기
surface_copy_part(surf, 0, 0, temp_surf1, 0, 0, 100, 100);
surface_copy_part(surf, 100, 0, temp_surf2, 0, 0, 100, 100);
- 서피스의 특정 영역만 복사하기
// 서피스의 특정 영역만 복사
surface_copy_part(surf, 0, 0, temp_surf, 50, 50, 200, 200);
- 서피스 복사 후 변환 적용하기
// 서피스를 복사한 후 회전 적용
surface_copy_part(surf, 0, 0, temp_surf, 0, 0, 100, 100);
draw_surface_ext(surf, 0, 0, 45, 1, c_white);