움직임 동작 및 활용
움직임 동작 라이브러리
모든 게임에서 움직임과 위치는 매우 중요합니다. GameMaker는 모든 상황을 처리할 수 있는 다양한 동작을 제공합니다. 인스턴스를 이동하는 주된 두 가지 방법은 다음과 같습니다:
- 방 안에서 실제 위치(x/y)를 설정하는 방법
- 속도/방향 벡터를 설정하는 방법
아래에서 설명하는 동작들은 이 두 가지 방법을 모두 포함하며, CommonActionAssign Variable을 사용하여 x와 y 위치를 직접 설정할 수 있습니다.
사용 가능한 움직임 동작 목록
| 동작 | 설명 |
|---|---|
| Set Direction Fixed | 방향을 고정합니다. |
| Set Direction Variable | 방향을 변수로 설정합니다. |
| Set Point Direction | 지정된 포인트 방향으로 설정합니다. |
| Set Direction Random | 방향을 무작위로 설정합니다. |
| Set Speed | 속도를 설정합니다. |
| Set Gravity Direction | 중력 방향을 설정합니다. |
| Set Gravity Force | 중력의 힘을 설정합니다. |
| Reverse | 반대 방향으로 이동합니다. |
| Set Friction | 마찰을 설정합니다. |
| Jump To Point | 특정 지점으로 점프합니다. |
| Jump To Start | 시작 위치로 점프합니다. |
| Snap Position | 위치를 정확하게 맞춥니다. |
| Wrap Around Room | 방의 반대쪽으로 지나가게 합니다. |
| Add Motion | 움직임을 추가합니다. |
| Move And Collide | 이동하고 충돌을 처리합니다. |
다양한 활용 예제
방향 고정 설정 (Set Direction Fixed)
인스턴스의 방향을 특정 값으로 고정할 수 있습니다. 예를 들어, 플레이어가 항상 오른쪽을 보도록 설정할 수 있습니다.
direction = 0; // 오른쪽
무작위 방향 설정 (Set Direction Random)
적이 무작위로 움직이도록 설정할 수 있습니다.
direction = irandom(360); // 0에서 360 사이의 무작위 각도
점프 위치 설정 (Jump To Point)
특정 좌표로 인스턴스를 점프시키는 코드입니다.
x = 100; // x좌표
y = 200; // y좌표
중력 방향 설정 (Set Gravity Direction)
게임에서 중력을 설정하여 인스턴스가 천천히 떨어지게 할 수 있습니다.
gravity_direction = 270; // 아래 방향으로 중력 설정
마찰 설정 (Set Friction)
인스턴스의 마찰을 조절하여 움직임을 더 부드럽게 만들 수 있습니다.
friction = 0.5; // 마찰 값 설정
충돌 처리 및 이동 (Move And Collide)
캐릭터가 장애물과 충돌하지 않고 이동하도록 만들어보세요.
if (place_meeting(x + hspeed, y, obj_wall)) {
hspeed = 0; // 충돌 시 속도 0
} else {
x += hspeed; // 이동
}
이와 같이 GameMaker의 다양한 움직임 동작을 활용하여 게임의 흐름과 캐릭터 이동을 더욱 풍부하게 만들 수 있습니다.