GAME MAKER 강좌
KAYAN
◈ 추가한 스프라이트 이미지에 충돌 마스크 설정
이 기능을 사용하면 스프라이트가 가져야 하는 충돌 마스크의 속성을 설정할 수 있습니다.
◎ sprite_collision_mask(ind, sepmasks, bboxmode, bbleft, bbtop, bbright, bbbottom, kind, tolerance); - ind : 스프라이트 인덱스 - sepmasks : 스프라이트의 각 하위 이미지에 대해 충돌 마스크를 생성할지(true), 아니면 모두에 대해 하나의 마스크를 생성할지(false) 여부. - bboxmode : 사용할 충돌 경계 상자의 종류. 0 = 자동, 1 = 전체 이미지, 2 = 사용자 정의. - bbleft : 충돌 경계 상자의 왼쪽 위치 - bbtop : 충돌 경계 상자의 상단 위치 - bright : 충돌 경계 상자의 오른쪽 위치 - bbbottom : 충돌 경계 상자의 하단 위치 - kind : 충돌 경계 상자 종류(모양) - tolerance (허용 오차) : 투명도 값의 허용 오차(0=오차 없음.기본값, 255=전체 허용 오차) |
[bboxmode] 모드로 자동(0), 또는 전체 이미지(1)를 선택하면, 개별 충돌 경계 상자 값(bbleft, bbtop, bbright, bbbottom)을 0으로 설정할 수 있습니다.
사용자 정의 마스크(2)를 지정하는 경우 충돌 경계 상자의 값을 설정해야 합니다.
충돌 경계 상자 값은 항상 스프라이트의 왼쪽 위 모서리 위치(0, 0)을 기준으로 합니다.
[kind]에 마스크 종류를 설정하면 마스크 자체의 일반적인 모양이 설정되지만, 직사각형 마스크가 아닌
다른 마스크들은 충돌을 해결할 때 더 많은 처리 능력이 필요하므로 성능이 저하될 수 있습니다.
일반적으로 꼭 필요한 경우에만 직사각형 이외의 마스크 유형을 사용하는 것이 좋습니다.
(▲ 충돌 마스크 속성)
참고로 이 기능은 회전 직사각형 충돌 마스크(Rectangle With Rotation)는 지원되지 않습니다.
[kind]에 설정할 수 있는 마스크 종류는 다음 상수 중 하나입니다.
- bboxkind_Rectangular : 직사각형(회전하지 않는) 직사각형 충돌 마스크 모양
- bboxkind_ellipse : 타원형 충돌 마스크 모양
- bboxkind_diamond : 다이아몬드 충돌 마스크 모양
- bboxkind_precise : 지정된 허용 오차 값을 기반으로 스프라이트의 불투명 픽셀을 마스크로하는 충돌 마스크
(▲ 충돌 마스크 모양)
마지막으로 [tolerance](허용오차)는 마스크의 정밀도를 정의하는데 사용됩니다
다만, [bboxmode]에 "전체 이미지(1)" 마스크를 지정하면 이 설정은 무시됩니다.
허용오차가 0(기본값)이면, 마스크의 투명도가 0보다 큰 모든 단일 픽셀이 마스크로 처리된다는 의미입니다.
따라서 값을 0보다 크게 설정(0~255)하면 픽셀의 투명도 값에 따라 충돌 마스크 경계로 처리됩니다.
0~255 값을 지정할 수 있으며 0은 투명도 오차없이 마스크를 설정하고,
255는 불투명 픽셀도 허용 오차 범위에 포함되므로 마스크 설정을 하지 않는 것과 같습니다.
예)
spr_custom = sprite_add("player_5.png", 16, true, true, 0, 0); sprite_collision_mask(spr_custom, true, 1, 0, 0, 0, 0, 0, 0); |
※ [참고] 이 기능은 비트맵 스프라이트에만 유용하며 SWF 또는 JSON(Spine) 스프라이트에서는 작동하지 않습니다.
※ [참고] 이 기능은 추가된 스프라이트나 복제된 스프라이트에서만 작동하며 미리 만들어진 리소스에서는 직접 작동하지 않습니다.
'GameMaker강좌[GMS2] > GMS2기초강좌' 카테고리의 다른 글
[게임메이커 강좌-기초][GMS2] GIF 이미지 저장 기능 (0) | 2024.03.21 |
---|---|
[게임메이커 강좌-기초][GMS2] 스프라이트 이미지 저장하기 (0) | 2024.03.20 |
[게임메이커 강좌-기초][GMS2] 게임상에서 외부 이미지 추가하기 (2) | 2024.03.19 |
[게임메이커 강좌-기초][GMS2] 파일 열기와 파일 저장 함수 (1) | 2024.03.19 |
[게임메이커 강좌-기초][GMS2] 앱폴더 이외의 경로 엑세스 (0) | 2024.03.18 |
댓글