move_snap 함수 설명
move_snap
함수는 인스턴스를 주어진 크기의 그리드에 "스냅"하는 데 사용됩니다. 이 함수는 hsnap
및 vsnap
값이 정의하는 "보이지 않는" 그리드의 가장 가까운 위치로 인스턴스를 이동시킵니다.
문법
move_snap(hsnap, vsnap);
인수 설명
인수 | 타입 | 설명 |
---|---|---|
hsnap | 정수 | 수평 스냅 (셀 간의 픽셀 크기) |
vsnap | 정수 | 수직 스냅 (셀 간의 픽셀 크기) |
반환값
이 함수는 반환값이 없습니다.
예제
다음 코드는 "obj_Pieces"의 모든 인스턴스가 32x32 픽셀 그리드에 스냅되어 있는지 확인하고, 그렇지 않은 경우 가장 가까운 위치로 스냅합니다.
with (obj_Pieces) {
if (!place_snapped(32, 32)) {
move_snap(32, 32);
}
}
활용 예제
- 게임 맵에서 타일 스냅
gml if (!place_snapped(64, 64)) { move_snap(64, 64); }
- 캐릭터 위치 조정
gml if (keyboard_check(vk_right)) { x += 5; move_snap(32, 32); }
- 오브젝트 배치
gml if (mouse_check_button_pressed(mb_left)) { x = mouse_x; y = mouse_y; move_snap(50, 50); }
- 그리드 기반 퍼즐 게임
gml if (instance_exists(obj_PuzzlePiece)) { move_snap(40, 40); }
- UI 요소 정렬
gml if (dragging) { move_snap(100, 100); }
이와 같이 move_snap
함수를 활용하여 다양한 게임 요소를 그리드에 맞춰 정렬할 수 있습니다.