셀에서 타일 인덱스 설정하기
이 문서는 특정 레이어의 타일을 새로운 인덱스로 설정하는 방법에 대해 설명합니다.
기능 설명
Set Tile Index In Cell 액션을 사용하면 주어진 레이어의 타일을 새로운 인덱스로 설정할 수 있습니다. 레이어는 문자열 형태로 명시되며(룸 편집기에서 레이어를 이름짓는 방식), 이어서 원하는 셀의 행(row)과 열(column)을 지정하여 타일을 설정합니다. 마지막으로, 설정할 타일의 인덱스를 제공하면 됩니다. 타일은 상단 왼쪽인 0부터 시작하여 좌에서 우로, 위에서 아래로 인덱스가 매겨집니다. 타일 인덱스를 0으로 설정하면 해당 타일이 제거됩니다.
액션 문법
SetTileIndexInCell(layer, column, row, tile)
인수 설명
| 인수 | 설명 |
|---|---|
| Layer | 타일을 설정할 레이어 |
| Column | 셀의 열(왼쪽에서 오른쪽) |
| Row | 셀의 행(위에서 아래) |
| Tile | 셀에 설정할 타일 인덱스 |
예제
다음 코드 블록은 주어진 방 레이어의 상단 행을 반복하면서, 셀에서 타일 인덱스가 0인지 확인합니다. 만약 0이 아니면, 해당 셀의 타일 인덱스를 0으로 설정하고 임시(local) 변수를 증가시킵니다.
var temp = 0;
for (var col = 0; col < room_width; col++) {
var index = GetTileIndexInCell("LayerName", col, 0);
if (index != 0) {
SetTileIndexInCell("LayerName", col, 0, 0);
temp++;
}
}
이 코드는 레이어 "LayerName"의 상단 행에서 모든 타일인덱스를 확인하고, 해당 인덱스가 0이 아닌 경우 모두 0으로 설정하며 몇 개의 타일이 제거되었는지 카운트합니다.
다양한 활용 예제
- 타일 청소: 특정 레이어의 모든 타일을 초기화하여 빈 공간으로 만들기.
gml for (var col = 0; col < layer_width; col++) { for (var row = 0; row < layer_height; row++) { SetTileIndexInCell("LayerName", col, row, 0); } } - 패턴 생성: 특정 패턴을 타일 인덱스를 사용하여 생성하기.
gml for (var col = 0; col < 5; col++) { for (var row = 0; row < 5; row++) { var tileIndex = (col + row) % 2; // 0 또는 1 SetTileIndexInCell("LayerName", col, row, tileIndex); } } - 타일 변경: 특정 조건에 따라 타일 인덱스 변경하기.
gml for (var col = 0; col < room_width; col++) { var index = GetTileIndexInCell("LayerName", col, 1); if (index == 1) { SetTileIndexInCell("LayerName", col, 1, 2); // 타일 인덱스를 1에서 2로 변경 } }
이러한 코드 예제들은 게임 개발 상황에서 타일 조작 및 수정에 유용하게 활용할 수 있습니다.
결론
Set Tile Index In Cell 액션은 레이어 내에서 타일을 쉽게 조작할 수 있는 강력한 도구입니다. 위에 제공된 예제들을 참고하여 다양한 방식으로 활용할 수 있습니다.