Nine Slicing (9 슬라이스)
Nine Slicing(9 슬라이스)은 사각형 이미지를 스케일링할 때 세부 정보를 보존하고 원래 형태를 유지하기 위해 사용되는 기술입니다. 이 기술은 이미지를 아홉 개의 개별 부분 또는 "슬라이스"로 나누어 구현됩니다. 코너 슬라이스는 스케일링 중에 이동되며 동일한 비율로 그려지고, 엣지 및 중앙 슬라이스는 공간을 채우기 위해 늘어나거나 반복됩니다(설정에 따라 다름).
슬라이스 나누기
스프라이트에 네 개의 가이드를 배치하여 이미지를 아홉 개의 슬라이스로 나눕니다. 아래의 시각적 예시는 스프라이트가 Nine Slicing을 사용하여 스케일링된 후 가이드가 어떻게 유지되는지를 보여줍니다.
슬라이스 위치 | 설명 |
---|---|
코너 슬라이스 | 스케일링 시 이동되지 않음 |
엣지 슬라이스 | 스케일링 시 늘어나거나 반복됨 |
중앙 슬라이스 | 스케일링 시 늘어나거나 반복됨 |
타일 모드
슬라이스의 타일 모드는 스프라이트가 스케일링될 때 해당 슬라이스가 어떻게 표시되는지를 결정합니다. 타일 모드는 엣지 및 중앙 슬라이스에 대해서만 설정할 수 있습니다(코너 슬라이스는 스케일되지 않음). 아래의 시각적 예시는 중앙 슬라이스에 적용된 각 타일 모드를 보여줍니다.
타일 모드 | 설명 |
---|---|
반복 | 슬라이스가 반복되어 채워짐 |
늘리기 | 슬라이스가 늘어나서 채워짐 |
고정 | 슬라이스가 고정된 크기로 유지됨 |
Nine Slicing 사용하기
Nine Slicing이 스프라이트에 활성화되면, 스프라이트가 나타나는 모든 곳에서 크기 조정에 사용되며, 다른 변경 없이도 기존의 모든 사용 장소에서 작동합니다.
주의: Nine Slicing은 draw_sprite_part() 또는 draw_sprite_pos()와 같이 스프라이트의 일부만 그리거나 왜곡하는 함수와 함께 작동하지 않습니다.
활용 예제
Nine Slicing은 사용자 인터페이스를 구축하는 데 사용할 수 있으며, 게임 레벨에서 직사각형 벽을 만드는 데 활용될 수 있습니다. 또한, Nine Slicing을 사용하면 작은 이미지를 사용하여 화면의 더 큰 영역을 덮을 수 있어 텍스처 메모리를 절약할 수 있습니다.
예제 1: 사용자 인터페이스 버튼 만들기
// Nine Slicing을 사용하여 버튼 생성
var buttonSprite = sprite_add("button.png", 1, false, false, 0, 0);
sprite_set_nine_slice(buttonSprite, 10, 10, 10, 10); // 슬라이스 설정
예제 2: 게임 레벨의 벽 만들기
// Nine Slicing을 사용하여 벽 생성
var wallSprite = sprite_add("wall.png", 1, false, false, 0, 0);
sprite_set_nine_slice(wallSprite, 5, 5, 5, 5); // 슬라이스 설정
예제 3: 텍스처 메모리 절약하기
// Nine Slicing을 사용하여 큰 영역을 작은 이미지로 덮기
var backgroundSprite = sprite_add("background.png", 1, false, false, 0, 0);
sprite_set_nine_slice(backgroundSprite, 20, 20, 20, 20); // 슬라이스 설정
추가 정보
Nine Slicing은 IDE에서 스프라이트에 활성화할 수 있습니다. 더 많은 정보는 스프라이트 편집기를 참조하세요. Nine Slicing에 사용할 수 있는 런타임 함수에 대한 정보는 관련 페이지를 참조하세요.