move_wrap 함수 설명 및 활용 예제
move_wrap
함수는 인스턴스가 방을 벗어났을 때 자동으로 "랩핑"하여 다시 방 안으로 되돌리는 기능을 제공합니다. 이 함수는 수평 또는 수직(또는 둘 다) 축에서 작동하며, 방의 가장자리 바깥쪽에 랩핑이 발생할 수 있는 여유 공간을 지정할 수 있습니다. 인스턴스가 이 여유 공간을 넘어가면, GameMaker는 자동으로 인스턴스를 반대편으로 되돌립니다. 랩핑이 작동하려면 인스턴스에 속도가 있어야 하며, 랩핑 방향은 이동 방향에 따라 결정됩니다.
문법
move_wrap(hor, vert, margin);
인수 설명
인수 | 타입 | 설명 |
---|---|---|
hor | Boolean | 수평으로 랩핑할지 여부 (true) 또는 하지 않을지 여부 (false) |
vert | Boolean | 수직으로 랩핑할지 여부 (true) 또는 하지 않을지 여부 (false) |
margin | Real | 랩핑을 시작하기 위해 객체가 방을 넘어야 하는 거리 (픽셀 단위) |
반환값
N/A
예제
move_wrap(true, false, sprite_width);
이 코드는 인스턴스가 자신의 스프라이트 너비를 넘어 수평으로 랩핑되지만 수직으로는 랩핑되지 않도록 설정합니다.
활용 예제
- 플랫폼 게임에서의 랩핑
- 수평으로만 랩핑하여 플레이어가 화면의 오른쪽 끝을 넘어가면 왼쪽으로 다시 나타나게 할 수 있습니다.
gml move_wrap(true, false, 50);
- 우주 슈팅 게임에서의 랩핑
- 우주선이 화면을 넘어가면 반대편에서 다시 나타나도록 설정하여 플레이어가 계속해서 이동할 수 있도록 합니다.
gml move_wrap(true, true, 100);
- 퍼즐 게임에서의 랩핑
- 특정 블록이 화면을 넘어가면 반대편에서 다시 나타나도록 하여 블록이 계속해서 이동할 수 있도록 합니다.
gml move_wrap(false, true, 30);
- 탑다운 슈팅 게임에서의 랩핑
- 플레이어 캐릭터가 화면을 넘어가면 반대편에서 다시 나타나도록 설정하여 게임의 흐름을 유지합니다.
gml move_wrap(true, true, 20);
이와 같이 move_wrap
함수를 활용하여 다양한 게임 상황에서 인스턴스의 이동을 자연스럽게 처리할 수 있습니다.