draw_sprite 함수 설명
draw_sprite
함수는 주어진 스프라이트와 서브 이미지를 게임 룸 내의 특정 위치에 그리는 기능을 제공합니다. 이 함수는 인스턴스 변수인 sprite_index
를 사용하여 현재 인스턴스에 할당된 스프라이트를 가져오거나, 다른 스프라이트 자산을 사용할 수 있습니다. 서브 이미지도 마찬가지로 인스턴스 변수인 image_index
를 사용하여 현재 인스턴스 스프라이트에 대해 선택된 서브 이미지로 설정할 수 있습니다. 다른 값을 사용하여 선택한 스프라이트의 특정 서브 이미지를 그릴 수도 있습니다.
서브 이미지의 값이 서브 이미지 수보다 크면, GameMaker는 자동으로 해당 이미지를 선택하기 위해 값을 루프합니다. 예를 들어, 그려지는 스프라이트가 5개의 서브 이미지(0부터 4까지 번호 매김)로 구성되어 있고, 인덱스 값을 7로 설정하면, 함수는 세 번째 서브 이미지(번호 2)를 그립니다.
마지막으로, x와 y 위치는 스프라이트가 그려질 룸 내의 위치를 나타내며, 스프라이트의 x 오프셋과 y 오프셋을 기준으로 중앙에 위치합니다.
주의: 이 함수는 스켈레톤 애니메이션 스프라이트를 사용할 때 예상대로 작동하지 않을 수 있으며, 기본 포즈의 첫 번째 프레임만 그려질 수 있습니다. 대신 draw_skeleton_*
함수를 사용하는 것이 좋습니다.
문법
draw_sprite(sprite, subimg, x, y);
인수 설명
인수 | 유형 | 설명 |
---|---|---|
sprite | Sprite Asset | 그릴 스프라이트 |
subimg | Real | 그릴 스프라이트의 서브 이미지 (image_index 또는 -1은 객체의 현재 애니메이션 프레임에 해당) |
x | Real | 스프라이트를 그릴 x 좌표 |
y | Real | 스프라이트를 그릴 y 좌표 |
반환값
N/A
예제
draw_sprite(sprite_index, image_index, x, y);
draw_sprite(spr_Halo, 0, x, y-32);
위의 예제는 인스턴스에 할당된 스프라이트(sprite_index
)의 현재 서브 이미지를 인스턴스의 x, y 위치에 그립니다. 그 후, "spr_Halo"로 인덱스된 스프라이트의 첫 번째 프레임을 같은 x, y 위치에 32픽셀 위에 그립니다.
활용 예제
1. 기본 스프라이트 그리기
draw_sprite(spr_Player, image_index, x, y);
2. 서브 이미지 변경하여 애니메이션 효과 주기
if (keyboard_check(vk_right)) {
image_index = 1; // 오른쪽 이동 시 서브 이미지 변경
}
draw_sprite(spr_Player, image_index, x, y);
3. 특정 위치에 스프라이트 그리기
draw_sprite(spr_Enemy, 0, x + 50, y + 50); // x, y에서 50픽셀 오른쪽 아래에 그리기
4. 스프라이트 회전 및 크기 조정
draw_sprite_ext(spr_Item, image_index, x, y, 1.5, 1.5, 45, c_white, 1); // 크기 1.5배, 45도 회전
5. 여러 스프라이트를 동시에 그리기
draw_sprite(spr_Background, 0, 0, 0); // 배경 그리기
draw_sprite(spr_Player, image_index, x, y); // 플레이어 그리기
draw_sprite(spr_Enemy, image_index, enemy_x, enemy_y); // 적 그리기