스프라이트 그리기 (Draw Sprite)
이 문서는 게임 제작에서 스프라이트를 그리는 방법을 설명합니다. 특정 위치에 스프라이트를 그릴 수 있으며, 스프라이트의 애니메이션 프레임도 설정할 수 있습니다. 프레임은 0부터 시작하는 숫자로 표시됩니다.
주요 개념
- 스프라이트: 게임에서 사용하는 이미지입니다.
- 위치: 스프라이트가 그려질 방의 절대 위치 또는 그리는 인스턴스의 상대 위치입니다.
- 프레임 인덱스: 애니메이션 스프라이트의 특정 프레임을 지정합니다. 만약 애니메이션을 부여하고 싶다면,
-1을 사용하거나 내장 인스턴스 변수인image_index를 사용합니다.
다음은 스프라이트를 그릴 때 기억해야 할 몇 가지 사항입니다:
- 스프라이트가 할당되지 않은 인스턴스는 애니메이션이 실행되지 않습니다.
- 그려지는 스프라이트의 프레임 수가 할당된 스프라이트의 프레임 수와 다르면, 잘못된 프레임으로 그려질 수 있습니다.
코드 예시
다음은 스프라이트를 그리는 코드 예제입니다.
// 현재 인스턴스의 위치에 "shadow" 스프라이트를 그린 후, 인스턴스 스프라이트를 그리는 부분입니다.
draw_sprite(shadow_sprite, -1, x, y);
draw_sprite(instance_sprite, image_index, x, y);
매개변수 설명
| 매개변수 | 설명 |
|---|---|
| Sprite | 그릴 스프라이트 |
| x | 그릴 x 위치 |
| y | 그릴 y 위치 |
| Frame Index | 그릴 프레임 인덱스 |
활용 및 응용 예제
- 단일 스프라이트 그리기:
gml draw_sprite(my_sprite, 0, 100, 150); - 애니메이션 스프라이트 그리기:
gml draw_sprite(my_animated_sprite, -1, x, y); - 상대 위치에 그리기: 이 인스턴스의 위치를 기준으로 스프라이트를 그릴 수 있습니다.
gml draw_sprite(my_sprite, 0, x + 50, y + 50); - 조건부로 스프라이트 그리기: 특정 조건에서만 스프라이트를 그리도록 설정합니다.
gml if (is_visible) { draw_sprite(visible_sprite, 0, x, y); } - 스프라이트 겹치기: 여러 개의 스프라이트를 쌓아 그리는 예제입니다.
gml draw_sprite(background_sprite, 0, 0, 0); draw_sprite(player_sprite, -1, x, y); draw_sprite(enemy_sprite, 0, enemy_x, enemy_y);
이처럼 스프라이트를 그리는 방법을 이해하고 다양한 예제를 통해 활용할 수 있습니다. 추가적인 질문이나 필요한 내용이 있다면 언제든지 문의해 주세요!