sprite_get_texture 함수 설명
sprite_get_texture 함수는 스프라이트의 텍스처 페이지에 대한 특별한 포인터를 반환합니다. 이 값은 다른 그리기 함수, 특히 2D 기본 함수 및 셰이더 함수에서 사용할 수 있습니다. 반환된 텍스처 페이지에 대한 추가 정보는 텍스처 페이지에 있는 다양한 텍스처 함수들을 통해 얻을 수 있습니다.
문법
sprite_get_texture(spr, subimg);
인수 설명
| 인수 이름 | 타입 | 설명 |
|---|---|---|
| spr | Sprite | 사용할 스프라이트의 인덱스입니다. |
| subimg | Real | 사용할 스프라이트의 서브 이미지입니다. |
반환값
- 텍스처
예제
다음 코드는 스프라이트 spr_Wall의 첫 번째 서브 이미지를 사용하여 텍스처를 가져온 후, 4개의 정점으로 구성된 삼각형 스트립을 그립니다.
var _tex;
_tex = sprite_get_texture(spr_Wall, 0);
draw_primitive_begin_texture(pr_trianglestrip, _tex);
draw_vertex_texture(0, 0, 0, 0);
draw_vertex_texture(480, 0, 1, 0);
draw_vertex_texture(480, 640, 1, 1);
draw_vertex_texture(0, 640, 0, 1);
draw_primitive_end();
위 코드는 _tex 변수에 저장된 텍스처로 텍스처가 적용된 4개의 정점으로 이루어진 삼각형 스트립을 그립니다.
활용 및 응용 예제
예제 1: 여러 스프라이트 텍스처 그리기
var _tex1, _tex2;
_tex1 = sprite_get_texture(spr_Wall, 0);
_tex2 = sprite_get_texture(spr_Floor, 0);
draw_primitive_begin_texture(pr_trianglestrip, _tex1);
draw_vertex_texture(0, 0, 0, 0);
draw_vertex_texture(480, 0, 1, 0);
draw_vertex_texture(480, 640, 1, 1);
draw_vertex_texture(0, 640, 0, 1);
draw_primitive_end();
draw_primitive_begin_texture(pr_trianglestrip, _tex2);
draw_vertex_texture(0, 640, 0, 0);
draw_vertex_texture(480, 640, 1, 0);
draw_vertex_texture(480, 1280, 1, 1);
draw_vertex_texture(0, 1280, 0, 1);
draw_primitive_end();
예제 2: 애니메이션 효과 적용
var _tex;
_tex = sprite_get_texture(spr_Character, current_frame);
draw_primitive_begin_texture(pr_trianglestrip, _tex);
draw_vertex_texture(x, y, 0, 0);
draw_vertex_texture(x + width, y, 1, 0);
draw_vertex_texture(x + width, y + height, 1, 1);
draw_vertex_texture(x, y + height, 0, 1);
draw_primitive_end();
예제 3: 셰이더와 함께 사용
var _tex;
_tex = sprite_get_texture(spr_Effect, 0);
shader_set(my_shader);
draw_primitive_begin_texture(pr_trianglestrip, _tex);
draw_vertex_texture(0, 0, 0, 0);
draw_vertex_texture(640, 0, 1, 0);
draw_vertex_texture(640, 480, 1, 1);
draw_vertex_texture(0, 480, 0, 1);
draw_primitive_end();
shader_reset();
이와 같은 방식으로 sprite_get_texture 함수를 활용하여 다양한 그래픽 효과를 구현할 수 있습니다.