본문 바로가기
GameMaker강좌[GMS2]/GMS2기초강좌

[게임메이커 강좌-기초][GMS2] 코드로 타일 배치-2 : 새 레이어 사용

by 타락카얀 2021. 2. 15.
728x90

 

 

GAME MAKER 강좌

 

 

KAYAN

 

 

 

 

 

◈ 타일 레이어와 타일 맵을 새로 만드는 경우

 

 

다음은 타일 레이어와 타일 맵을 새로 만드는 경우에 대해 알아봅시다.

레이어는 아래의 함수를 사용하여 새 레이어를 만들 수 있습니다.

 

    ◎ layer_create(depth, [name])

 

    - depth : 레이어 깊이(-16000 ~ 16000 사이)

    - name : 레이어의 이름(문자열)

 

예를 들어, "test_layer" 라는 레이어를 만든다고 했을 때,

 


      //Create 이벤트



      global.tile_layer = layer_create(-1, "test_layer");

 

레이어는 만들었지만, 타일맵은 아직 존재하지 않은 상태입니다.

아래의 함수를 사용하면 타일 레이어에 타일 맵을 생성할 수 있습니다.

 

    layer_tilemap_create(layer_id, x, y, tileset, width, height)

 

    - layer_id : 레이어 ID

    - x, y : 타일 맵 시작 위치

    - tileset: 타일셋 인덱스(리소스)

    - width, height : 타일 맵 너비, 높이 (일반적으로 룸의 크기만큼의 타일 셀 개수를 지정하면 됨)

 

예를 들어, 이전에 만든 "test_layer" 레이어에, TileSet1 타일을 사용하여 타일 맵을 생성한다면,

 


      //Create 이벤트


      global.tile_map = layer_tilemap_create(layer_get_id("test_layer"), 0, 0, TileSet1,
                                    floor(room_width/32),floor(room_height/32));

 

이와 같이 할 수 있습니다.

 

또는, 이전에 레이어의 ID를 할당한 global.tile_layer 변수를 사용하여 타일 맵을 생성할 수도 있습니다.

 


      //Create 이벤트


      global.tile_map = layer_tilemap_create(global.tile_layer, 0, 0, TileSet1,
                                    floor(room_width/32), floor(room_height/32));

 

타일맵의 ID를 변수에 할당했으므로, 이후 타일을 배치할 때 굳이 타일맵 ID를 찾을 필요 없이 이 변수를 사용하면 됩니다.

 

참고로 생성된 타일 맵을 파기할 때는 아래의 함수를 사용합니다.

 

    layer_tilemap_destroy(tilemap_element_id)

 

이제 타일 맵을 생성했으니, 타일을 배치해봅시다.

11번의 타일을 (360,96)의 위치에 배치한다고 했을 때,

 


      tilemap_set_at_pixel(global.tile_map, 11, 360, 96);

 

이와 같이 할 수 있습니다. 간단하죠.

 

(▲ 타일 배치)

 

 

 

- 계속 -

 

300x250

댓글