draw_sprite_ext 함수 설명
draw_sprite_ext
함수는 주어진 스프라이트를 그리는 함수로, draw_sprite()
와 유사하지만 스프라이트의 크기, 혼합, 회전 및 알파 값을 변경할 수 있는 추가 옵션이 있습니다. 이 값을 변경해도 리소스 자체는 수정되지 않으며, 함수의 모든 인수에 대해 직접 값 대신 사용 가능한 스프라이트 변수를 사용할 수 있습니다.
아래 이미지는 다양한 값이 스프라이트의 그리기에 어떤 영향을 미치는지를 보여줍니다.
주의: 색상 혼합은 WebGL이 활성화된 HTML5 타겟에서만 권장됩니다. WebGL이 비활성화된 경우에도 혼합 색상을 설정할 수 있지만, 스프라이트는 일반적으로 혼합됩니다. 그러나 이러한 방식의 모든 혼합은 중복 스프라이트를 생성하여 캐시에 저장하고 필요할 때 사용합니다. 이는 최적이 아니며, 여러 색상 변경을 사용할 경우 WebGL을 활성화하지 않으면 게임 성능이 저하될 수 있습니다. WebGL을 사용하지 않으려면sprite_set_cache_size()
함수를 사용하여 폰트 캐시 크기를 설정하여 제한할 수 있습니다.
주의: 이 함수는 스켈레톤 애니메이션 스프라이트를 사용할 때 예상대로 작동하지 않을 수 있으며, 기본 포즈의 첫 번째 프레임만 그려질 수 있습니다. 대신draw_skeleton_*
함수를 사용해야 합니다.
문법
draw_sprite_ext( sprite, subimg, x, y, xscale, yscale, rot, colour, alpha );
인수 설명
인수 | 타입 | 설명 |
---|---|---|
sprite | 스프라이트 | 그릴 스프라이트 |
subimg | 정수 | 그릴 스프라이트의 서브 이미지(프레임) (image_index 또는 -1은 객체의 현재 애니메이션 프레임과 관련됨) |
x | 정수 | 스프라이트를 그릴 x 좌표 |
y | 정수 | 스프라이트를 그릴 y 좌표 |
xscale | 실수 | 스프라이트의 수평 스케일, 배수로: 1 = 일반 스케일, 0.5는 절반 등... |
yscale | 실수 | 스프라이트의 수직 스케일, 배수로: 1 = 일반 스케일, 0.5는 절반 등... |
rot | 실수 | 스프라이트의 회전. 0=정상, 90=90도 반시계 방향 회전 등... |
colour | 색상 | 스프라이트와 혼합할 색상. c_white는 일반적으로 표시됨 |
alpha | 실수 | 스프라이트의 알파 (0에서 1까지, 0은 투명, 1은 불투명) |
반환값
이 함수는 반환값이 없습니다.
예제
draw_sprite_ext(sprite_index, image_index, x, y, image_xscale, image_yscale, image_angle, image_blend, image_alpha);
위 코드는 인스턴스에 할당된 스프라이트를 기본값으로 그립니다 (본질적으로 draw_self
를 사용하는 것과 동일합니다).
활용 예제
- 스프라이트 크기 조정
draw_sprite_ext(my_sprite, 0, 100, 150, 1.5, 1.5, 0, c_white, 1);
- 스프라이트 회전
draw_sprite_ext(my_sprite, 0, 200, 200, 1, 1, 45, c_white, 1);
- 스프라이트 색상 혼합
draw_sprite_ext(my_sprite, 0, 300, 300, 1, 1, 0, c_red, 0.5);
- 투명도 조절
draw_sprite_ext(my_sprite, 0, 400, 400, 1, 1, 0, c_white, 0.3);
- 애니메이션 프레임 변경
draw_sprite_ext(my_sprite, image_index, 500, 500, 1, 1, 0, c_white, 1);