타일 맵 비트 마스크 설정
tilemap_set_global_mask 함수는 게임 내 모든 타일 맵에 대한 타일 맵 비트 마스크를 설정합니다. 이 기능은 타일 세트가 16x16 크기의 작은 타일로 구성되어 있을 때 유용합니다. 각 타일 세트는 총 256개의 서로 다른 타일을 포함하며, 이는 8비트의 인덱스를 사용합니다(사용 가능한 데이터 중 19비트에서). 이러한 비트는 "마스킹"할 수 있으며, 나머지 타일 데이터는 추가 값을 저장하는 데 사용할 수 있습니다.
타일 맵 비트 마스킹은 고급 기능으로, 타일 데이터 "블롭"의 비트를 사용자 정의 용도로 사용할 수 있게 해줍니다. 예를 들어, 사용자는 타일 데이터 구조에서 "고체"를 의미하는 비트를 예약할 수 있으며, 이를 통해 빠른 충돌 검사를 수행할 수 있습니다. 기본적으로 비트 마스크는 타일 맵이 그려질 때 타일 데이터와 "AND" 연산을 수행하여, 마스크에 없는 비트는 무시되지만 사용자가 자신의 용도로 읽고 쓸 수 있습니다.
전역 마스크에 설정된 비트는 항상 타일 맵 마스크(tilemap_set_mask)가 예상대로 작동하도록 동일해야 합니다. 예를 들어, 전역 마스크가 0b0000111111111101이면, 어떤 타일 맵 마스크에서도 비트 1이 0으로 강제 설정됩니다.
문법
tilemap_set_global_mask(mask);
인수
| 인수 | 유형 | 설명 |
|---|---|---|
| mask | Real | 사용할 마스크 값 |
반환값
N/A
활용 예제
예제 1: 기본 사용
|tile_flip|tile_rotate|
|---|---|
tilemap_set_global_mask(_mask);
위 코드는 전역 타일 맵 비트 마스크를 8비트(이진수 0b11111111, 즉 값 255)로 설정하며, 플립, 미러 및 회전 값을 보존합니다.
예제 2: 전역 및 타일 맵 마스크 결합
|tile_flip|
|---|
||
tilemap_set_global_mask(_mask_global);
var _lay_id = layer_get_id("Tiles_sky");
var _map_id = layer_tilemap_get_id(_lay_id);
tilemap_set_mask(_map_id, _mask_small_ts);
위 코드는 tilemap_set_global_mask를 사용하여 전역 타일 맵 비트 마스크를 설정합니다. 8비트는 타일 인덱스에 사용되며, 미러, 플립 및 회전 비트는 보존됩니다. "Tiles_sky"라는 레이어의 타일 맵에는 타일 인덱스에 대해 4비트만 허용하는 사용자 정의 마스크가 설정됩니다. 변환 비트는 여전히 보존됩니다.