draw_sprite_part_ext 함수 설명
draw_sprite_part_ext
함수는 선택한 스프라이트의 일부를 주어진 위치에 그리는 기능을 제공합니다. 이 함수는 draw_sprite_part()
와 동일한 규칙을 따르지만, 이제는 스프라이트의 일부를 스케일링하거나 색상을 혼합하거나 알파 값을 변경할 수 있습니다.
주의사항
- 텍스처 페이지가 자동 크롭을 허용하는 경우, 이 함수는 예상대로 작동하지 않을 수 있습니다. 이 문제를 해결하려면 텍스처 그룹 편집기에서 자동 크롭을 비활성화해야 합니다.
- 이 함수는 비트맵 스프라이트에만 유용하며, 벡터 또는 JSON(Spine) 스프라이트와는 작동하지 않습니다.
- 색상 혼합은 HTML5 타겟에서 WebGL이 활성화된 경우에만 권장됩니다. WebGL이 비활성화된 경우에도 색상 혼합을 설정할 수 있지만, 이 경우 스프라이트가 일반적으로 혼합됩니다. 모든 혼합은 중복 스프라이트를 생성하여 캐시에 저장되므로 성능 저하를 초래할 수 있습니다.
함수 문법
draw_sprite_part_ext(sprite, subimg, left, top, width, height, x, y, xscale, yscale, colour, alpha);
인자 설명
인자 | 타입 | 설명 |
---|---|---|
sprite | Sprite | 그릴 스프라이트 |
subimg | Real | 그릴 스프라이트의 서브 이미지(프레임) |
left | Real | 그릴 영역의 왼쪽 상단 모서리의 x 위치 |
top | Real | 그릴 영역의 왼쪽 상단 모서리의 y 위치 |
width | Real | 그릴 영역의 너비 |
height | Real | 그릴 영역의 높이 |
x | Real | 스프라이트를 그릴 x 좌표 |
y | Real | 스프라이트를 그릴 y 좌표 |
xscale | Real | 스프라이트의 수평 스케일링 비율 |
yscale | Real | 스프라이트의 수직 스케일링 비율 |
colour | Colour | 스프라이트와 혼합할 색상 |
alpha | Real | 스프라이트의 알파 값 (0은 투명, 1은 불투명) |
예제
draw_sprite_part_ext(sprite_index, image_index, 8, 8, sprite_width-16, sprite_height-16, x, y, 2, 0.5, c_black, 1);
위 코드는 인스턴스에 할당된 스프라이트(sprite_index
)와 현재 애니메이션 프레임(image_index
)을 그립니다. 스프라이트의 모든 측면에서 8px의 여백을 제거하고, 너비는 두 배로, 높이는 절반으로 늘립니다. 알파 값은 여전히 1이지만, 검은색과 혼합되어 실루엣으로 변환됩니다.
활용 예제
- 스프라이트 애니메이션 효과
draw_sprite_part_ext(my_sprite, current_frame, 0, 0, 64, 64, x, y, 1, 1, c_white, 1);
- 스프라이트 크기 조절
draw_sprite_part_ext(my_sprite, current_frame, 0, 0, 128, 128, x, y, 0.5, 0.5, c_white, 1);
- 색상 혼합을 통한 효과
draw_sprite_part_ext(my_sprite, current_frame, 0, 0, 64, 64, x, y, 1, 1, c_red, 0.5);
- 투명도 조절
draw_sprite_part_ext(my_sprite, current_frame, 0, 0, 64, 64, x, y, 1, 1, c_white, 0.5);
- 부분 스프라이트 그리기
draw_sprite_part_ext(my_sprite, current_frame, 10, 10, 50, 50, x, y, 1, 1, c_white, 1);
이와 같은 방법으로 draw_sprite_part_ext
함수를 활용하여 다양한 그래픽 효과를 구현할 수 있습니다.