layer_sprite_blend 함수 설명
layer_sprite_blend 함수는 스프라이트의 혼합(또는 "틴팅")을 제어하는 기능입니다. 기본값은 -1로, 이는 c_white 상수를 나타냅니다. 다른 값(예: c_red, c_aqua와 같은 내부 색상 상수)을 사용하면 지정된 색상이 원래 스프라이트와 혼합됩니다. 이 함수는 스프라이트 요소 ID를 입력받고, 혼합할 색상을 설정합니다.
문법
layer_sprite_blend(sprite_element_id, blend);
인수 설명
| 인수 | 타입 | 설명 |
|---|---|---|
| sprite_element_id | Sprite Element ID | 변경할 스프라이트 요소의 고유 ID 값 |
| blend | Colour | 스프라이트와 혼합할 색상 (기본값은 c_white) |
반환값
- N/A
활용 예제
다음은 다양한 색상으로 혼합된 스프라이트의 예입니다:
var lay_id = layer_get_id("Asset_sky");
var spr_id = layer_sprite_get_id(lay_id, "Clouds");
layer_sprite_blend(spr_id, c_gray);
위 코드는 "Asset_sky" 레이어에 할당된 "Clouds"라는 스프라이트의 ID 값을 가져온 후, 이를 회색으로 틴팅합니다.
추가 활용 예제
- 빨간색으로 혼합하기
gml layer_sprite_blend(spr_id, c_red); - 청록색으로 혼합하기
gml layer_sprite_blend(spr_id, c_aqua); - 파란색으로 혼합하기
gml layer_sprite_blend(spr_id, c_blue); - 투명한 색상으로 혼합하기
gml layer_sprite_blend(spr_id, make_color(255, 0, 0, 128)); // 반투명 빨간색 - 다양한 색상으로 반복적으로 혼합하기
gml var colors = [c_red, c_green, c_blue, c_yellow]; for (var i = 0; i < array_length(colors); i++) { layer_sprite_blend(spr_id, colors[i]); // 추가적인 코드로 색상 전환 효과 구현 가능 }
주의사항
HTML5 플랫폼에서 혼합을 제한하는 것이 좋습니다(웹GL을 사용하지 않는 경우). 각 혼합된 스프라이트는 별도로 캐시되어야 하므로, 많은 혼합된 스프라이트가 있을 경우 성능에 악영향을 미칠 수 있습니다. 캐시 크기는 sprite_set_cache_size() 함수를 사용하여 설정할 수 있습니다.