draw_tile 함수 설명
draw_tile
함수는 타일 세트에서 주어진 타일을 그릴 수 있는 기능을 제공합니다. 이 함수는 회전, 뒤집기, 미러링과 같은 변형을 지원하며, 애니메이션이 있는 경우 프레임을 설정하고 방 내에서의 위치를 지정할 수 있습니다.
주요 개념
- 타일 세트 핸들: IDE에서 설정한 타일 세트입니다.
- 타일 데이터: 타일 인덱스와 적용된 변형에 대한 모든 정보를 포함하는 데이터 블롭입니다.
tilemap_get()
함수를 사용하여 타일 데이터를 가져올 수 있으며, 이후 타일 함수들을 사용하여 조작할 수 있습니다.
타일 상수
상수 | 설명 |
---|---|
tile_rotate | 타일 데이터 블롭의 회전 비트를 설정/가져오는 데 사용됩니다. |
tile_mirror | 타일 데이터 블롭의 미러 비트를 설정/가져오는 데 사용됩니다. |
tile_flip | 타일 데이터 블롭의 플립 비트를 설정/가져오는 데 사용됩니다. |
tile_index_mask | 타일 데이터 블롭에서 타일 인덱스를 추출하기 위해 "and" 연산에 사용되는 특별한 상수입니다. |
타일 인덱스 값과 함께 이러한 상수를 비트 단위로 "or" 연산하여 최종 타일 데이터를 생성할 수 있습니다.
예제 코드
|tile_rotate|
|---|
위 코드는 타일 세트에서 인덱스가 8인 타일의 데이터를 저장하는 로컬 변수를 생성하며, 이 타일은 회전되고 뒤집힙니다. 이후 이 데이터를 사용하여 지정한 타일 세트에서 해당 인덱스의 타일을 그릴 수 있습니다.
함수 구문
draw_tile(tileset, tiledata, frame, x, y)
인수 설명
인수 | 유형 | 설명 |
---|---|---|
tileset | 타일 세트 자산 | 사용할 타일 세트의 핸들입니다. |
tiledata | 타일 데이터 | 사용할 타일 데이터입니다. |
frame | 실수 | 사용할 애니메이션 타일의 프레임 번호 (비애니메이션 타일의 경우 기본값 0) |
x | 실수 | 방 내에서 그릴 x 위치입니다. |
y | 실수 | 방 내에서 그릴 y 위치입니다. |
반환값
- 실수
활용 예제
- 타일 세트에서 특정 타일을 회전 및 뒤집어 그리기
var lay_id = layer_get_id("Tiles_sky");
var map_id = layer_tilemap_get_id(lay_id);
var data = tilemap_get(map_id, 0, 0);
tile_set_flip(data, true);
draw_tile(set_Wall, data, 0, x, y);
- 애니메이션 타일의 특정 프레임을 그리기
var frame_number = 1; // 애니메이션의 두 번째 프레임
draw_tile(set_Animation, data, frame_number, x, y);
- 여러 타일을 반복적으로 그리기
for (var i = 0; i < 5; i++) {
draw_tile(set_Wall, data, 0, x + (i * 32), y);
}
- 타일의 미러링 효과 적용하기
var data = tilemap_get(map_id, 1, 1);
tile_set_mirror(data, true);
draw_tile(set_Wall, data, 0, x, y);
이와 같은 방식으로 draw_tile
함수를 활용하여 다양한 타일을 방 내에서 그릴 수 있습니다.