나인 슬라이스 구조체
나인 슬라이스 구조체는 sprite_nineslice_create()를 사용하여 생성하거나, 스프라이트에서 sprite_get_nineslice()를 사용하여 가져올 수 있습니다. 이 구조체는 스프라이트에 적용할 수 있는 변경 가능한 속성을 포함하고 있으며, sprite_set_nineslice()를 통해 적용할 수 있습니다. 스프라이트에서 가져온 경우, 이 구조체의 값을 변경하면 원래 스프라이트에 영향을 미칩니다.
나인 슬라이스 구조체 속성
| 속성 이름 | 변수 타입 | 설명 |
|---|---|---|
| enabled | Boolean | 나인 슬라이싱이 스프라이트에 대해 활성화되면 true, 비활성화되면 false입니다. 이 값을 수정하여 나인 슬라이싱을 활성화 또는 비활성화할 수 있습니다. |
| left | Real | 스프라이트의 왼쪽 가장자리와 관련된 x축의 왼쪽 가이드 오프셋입니다. |
| right | Real | 스프라이트의 오른쪽 가장자리와 관련된 x축의 오른쪽 가이드 오프셋입니다. |
| top | Real | 스프라이트의 위쪽 가장자리와 관련된 y축의 위쪽 가이드 오프셋입니다. |
| bottom | Real | 스프라이트의 아래쪽 가장자리와 관련된 y축의 아래쪽 가이드 오프셋입니다. |
| tilemode | Tile Mode 상수 배열 | 가장자리 및 중앙 슬라이스의 타일 모드를 포함하는 배열을 반환합니다. |
타일 모드
각 슬라이스의 타일 모드는 다음 상수를 사용하여 읽거나 수정할 수 있습니다:
| 상수 이름 | 설명 |
|---|---|
| nineslice_left | 왼쪽 가장자리 슬라이스 |
| nineslice_top | 위쪽 가장자리 슬라이스 |
| nineslice_right | 오른쪽 가장자리 슬라이스 |
| nineslice_bottom | 아래쪽 가장자리 슬라이스 |
| nineslice_centre | 중앙 슬라이스 |
슬라이스의 타일 모드는 다음 상수 중 하나로 설정할 수 있습니다:
| 상수 이름 | 설명 |
|---|---|
| nineslice_stretch | 슬라이스가 늘어납니다. |
| nineslice_repeat | 슬라이스가 반복됩니다. |
| nineslice_mirror | 슬라이스가 미러링되어 반복됩니다. |
| nineslice_blank | 슬라이스가 늘어나거나 반복되지 않으며, 빈 영역이 생성됩니다. |
| nineslice_hide | 슬라이스가 전혀 나타나지 않습니다. |
타일 모드는 배열이므로 배열 구문을 사용하여 슬라이스의 타일 모드를 변경해야 합니다. 아래의 코드 예제는 위쪽 슬라이스의 타일 모드를 반복으로 설정하는 방법을 보여줍니다:
var _nineslice = sprite_get_nineslice(spr_box);
_nineslice.tilemode[nineslice_top] = nineslice_repeat;
활용 예제
- 스프라이트 생성 및 나인 슬라이스 적용
gml var my_sprite = sprite_nineslice_create(); sprite_set_nineslice(my_sprite, _nineslice); - 나인 슬라이스 비활성화
gml var _nineslice = sprite_get_nineslice(spr_box); _nineslice.enabled = false; - 슬라이스의 왼쪽 오프셋 변경
gml var _nineslice = sprite_get_nineslice(spr_box); _nineslice.left = 10; // 왼쪽 오프셋을 10으로 설정 - 타일 모드 설정
gml var _nineslice = sprite_get_nineslice(spr_box); _nineslice.tilemode[nineslice_bottom] = nineslice_stretch; // 아래쪽 슬라이스를 늘리기 - 슬라이스 숨기기
gml var _nineslice = sprite_get_nineslice(spr_box); _nineslice.tilemode[nineslice_left] = nineslice_hide; // 왼쪽 슬라이스 숨기기