sprite_set_speed 함수 설명
sprite_set_speed 함수는 스프라이트 리소스의 기본 애니메이션 속도와 유형을 설정하는 데 사용됩니다. 일반적으로는 스프라이트 편집기에서 설정하지만, 특정 스프라이트 리소스에 대해 수동으로 설정해야 할 때가 있습니다. 이 함수를 사용하려면 설정할 스프라이트 인덱스, 애니메이션 속도 및 적용할 애니메이션 속도 유형을 제공해야 합니다.
애니메이션 속도 유형
애니메이션 속도 유형은 다음과 같은 상수 중 하나일 수 있습니다:
| 상수 | 설명 |
|---|---|
| spritespeed_framespersecond | 스프라이트가 초당 프레임으로 정의됨. |
| spritespeed_framespergameframe | 스프라이트가 게임 프레임당 프레임으로 정의됨. |
속도 유형을 선택하는 것은 애니메이션 계산에 매우 중요합니다. 두 옵션 간에는 큰 차이가 있습니다. 다음 두 예제를 통해 이 차이를 설명합니다:
- 초당 프레임: 스프라이트가 초당 1 프레임을 그리도록 설정하고 이미지 속도를 0.5로 설정하면 초당 0.5 프레임을 그립니다. 게임 프레임 속도가 60 프레임/초라면 스프라이트는 120 게임 프레임마다 1 프레임을 그립니다.
- 게임 프레임당 프레임: 스프라이트가 게임 프레임당 1 프레임을 그리도록 설정하고 이미지 속도를 0.5로 설정하면 게임 프레임당 0.5 프레임을 그립니다. 게임 프레임 속도가 60 프레임/초라면 스프라이트는 60 게임 프레임마다 30 프레임을 그립니다.
스프라이트 애니메이션에 사용된 속도 값을 확인하려면 sprite_get_speed() 함수를 사용할 수 있으며, 애니메이션 속도 유형은 sprite_get_speed_type() 함수를 사용하여 얻을 수 있습니다.
함수 문법
sprite_set_speed(index, speed, type)
인수 설명
| 인수 | 타입 | 설명 |
|---|---|---|
| index | Sprite Asset | 애니메이션 속도를 설정할 스프라이트의 인덱스. |
| speed | Real | 설정할 속도 값. |
| type | Sprite Speed Constant | 사용할 속도 유형. |
반환값
- 상수 (위의 설명 참조)
예제
sprite_set_speed(sprite_index, 10, spritespeed_framespersecond);
위 코드는 인스턴스에 할당된 스프라이트의 기본 애니메이션 속도를 초당 10 프레임으로 설정합니다.
활용 예제
- 스프라이트 속도 조정: 게임의 특정 상황에서 스프라이트의 애니메이션 속도를 조정할 수 있습니다.
gml sprite_set_speed(player_sprite, 15, spritespeed_framespersecond); - 게임 이벤트에 따른 속도 변경: 특정 이벤트 발생 시 스프라이트의 속도를 변경할 수 있습니다.
gml if (event_occurred) { sprite_set_speed(enemy_sprite, 5, spritespeed_framespergameframe); } - 스프라이트 애니메이션 초기화: 게임 시작 시 모든 스프라이트의 애니메이션 속도를 초기화합니다.
gml sprite_set_speed(background_sprite, 1, spritespeed_framespersecond); - 스프라이트 속도 확인: 현재 스프라이트의 속도를 확인하고 로그에 출력합니다.
gml var current_speed = sprite_get_speed(sprite_index); show_debug_message("Current speed: " + string(current_speed)); - 속도에 따른 애니메이션 효과: 속도에 따라 스프라이트의 애니메이션 효과를 다르게 설정합니다.
gml if (player_speed > 10) { sprite_set_speed(player_sprite, 20, spritespeed_framespersecond); } else { sprite_set_speed(player_sprite, 10, spritespeed_framespersecond); }