본문 바로가기
GameMaker강좌[GM8]/기초강좌-액션

[게임메이커강좌-기초]이동에 대한 액션기능-1

by 타락카얀 2014. 3. 6.
728x90



GAME MAKER 강좌



KAYAN



이번 강좌에서는 이동에 대한 액션 기능에 대해 알아보도록 합시다.



(▲이동 액션)





◈기본 이동 액션(Move)



이동은 GML 언어로 구성하는 것이 효율적이지만, 입문자가 처음부터 접하기에는 어려운 부분들이

많습니다. 그런 분들을 위해 액션기능이 있는 것이지요.
액션은 아이콘에 어떠한 액션인지 쉽게 알아볼 수 있게 구성되어있어 입문자들에겐 최적의 기능입니다.
그 중 이동에 대한 액션들을 알아 볼 것입니다.

이동 액션은 총4개로 구성되어있습니다.
기본적으로 방향에 따른 이동 액션, 그리고 좌표를 통해 이동 시키는 액션, 패스를 통해 이동시키는 액션,

장애물을 감지시켜 이동하다 멈추거나 회피시키는 액션으로 나뉘어집니다.

우선 기본적인 방향에 따른 액션에 대해 알아보도록 합시다.



(▲ 기본 이동 액션)


Move Fixed 액션은 주어진 방향 버튼을 눌러 이동 방향을 정하고, speed에 속도를 지정합니다.



(▲ Move Fixed 액션)


Relative 를 체크하면 속도가 이전 속도에 더한 값으로 이동 하게 됩니다.

Move Free 액션Move Fixed 액션과 같지만, 이동 방향을 값으로 직접 지정할 수 있다는 것이

다릅니다.


(▲ Move Free 액션)


방향은 0~360 사이의 값을 지정할 수 있습니다.


Move Towards 액션은 지정한 좌표로 이동시킬 때 사용합니다.



(▲ Move Towards 액션)


이 액션은 오브젝트를 마우스 좌표(mouse_x, mouse_y)나 특정 위치로 이동 할 수 있게 만들 수 있어요.



(▲ Move Towards 액션은 지정한 위치로 이동시킬 때 사용)


Speed Horizontal 액션, Speed Vertical 액션은 오브젝트를 수평이나 수직으로 이동시킬 수 있습니다.



(▲ Speed Horizontal 액션 - 수평으로 이동. Speed Vertical 액션 - 수직으로 이동)


Move Fixed 액션이나 Move Free 액션을 사용할 수 있으나, 간편하게 수평이나 수직으로 이동시킬 때

유용한 액션입니다.

Set Gravity 액션은 오브젝트에 중력을 적용할 수 있는 액션입니다.



(▲ Set Gravity 액션)


direction 에 중력 방향을 지정하고, gravity 에 중력 세기를 지정하면 됩니다.



(▲ 중력을 설정하면 중력 방향으로 점점 빠르게 이동함)


Set Gravity 액션은 주로 플랫폼 게임에서 캐릭터 중력 설정에 사용됩니다.


Reverse Horizontal 액션, Reverse verticlal 액션을 사용하면 특정 오브젝트와 충돌 했을 때나,

룸의 외곽선에 닿았을 때, 이동하던 방향(수평 또는 수직 방향을 기준)의 반대 방향으로 변경해

이동 시킬 수 있습니다.



(▲ Reverse Horizontal 액션 - 수평 방향을 변경. Reverse verticlal 액션 - 수직 방향을 변경)


이것은 보통, 수직 또는 수평방향을 반대방향으로 변경시키는 것으로 오브젝트의 충돌 이벤트나,

룸 또는 뷰의 경계선인 Outside room, intersecter boundary, Boundary view,

Outside view 이벤트에서 오브젝트의 방향을 변경시킵니다.


이동하는 오브젝트에 Set Friction 액션으로 마찰력을 주어 점점 느려지게 할 수 있습니다.



(▲ Set Friction 액션)


이 액션은 보통 오브젝트를 이동 시킨 후, 해당 오브젝트의 속도를 점점 줄일 때 사용합니다.



(▲ Set Friction 액션을 사용하면 이동 속도를 점점 줄이며 멈추게 할수 있음)







◈좌표 이동 액션(Jump)



이번에는 좌표를 통한 이동에 대해 알아보도록 합시다.



(▲ 좌표 이동 액션)


Jump to Position 액션은 오브젝트를 좌표를 통해 이동시킬 때 사용합니다.



(▲ Jump to Position 액션)


Relative를 체크하면 현재 기준으로 이동시킬 수 있어요.


때로는 오브젝트가 생성된 위치로 이동시키고 싶을 때가 있지요.
Jump to Start 액션을 사용하면 오브젝트가 생성된 처음 위치로 이동 시킬 수 있습니다.


(▲ Jump to Start 액션)


만약 현재 좌표를 현재 좌표에서 그리드 좌표로 재설정하려면 Align to Grid 액션을 사용하세요.



(▲ Align to Grid 액션)


snap hor, snap vert 는 그리드의 가로 세로 크기를 지정합니다.
이 액션은 다른 좌표로 이동하는 것보다, 가장 가까운 그리드 좌표로 이동 시킬 때 사용하는 것입니다.



(▲ 가장 가까운 그리드 위치로 이동시킴)


오브젝트를 랜덤 위치로 이동 시키고자 할 때는 Jump to Random 액션을 사용하세요.



(▲ Jump to Random 액션)


snap hor, snap vert 는 그리드의 가로 세로 크기를 지정합니다.
예를 들어, (16,16) 으로 설정하면 16X16크기의 그리드 중 랜덤 위치로 이동하게 됩니다.

오브젝트가 현재 룸 밖으로 나갔을 때 반대편 화면으로 이동 시킬때, Wrap Screen 액션을 사용합니다.



(▲ Wrap Screen 액션)


예를 들어 오브젝트가 룸의 왼쪽 방향으로 나갔다면 반대 방향인 오른쪽 방향 끝으로 나오게 할 때

사용합니다.

directionin both direction을 지정하면 위, 아래, 좌, 우 방향으로 적용할 수 있습니다.



(▲ Wrap Screen 액션을 사용하면 화면 밖으로 나갔을 때 반대 방향으로 다시 나오게 할 수 있음)


Move to Contact 액션을 사용하면 지정한 방향으로 Solid 오브젝트가 있을 때, 그 쪽으로 가까이 붙일 수

있습니다.



(▲ Move to Contact 액션)


direcion 은 방향을 지정하고, maximum 에 거리를 지정하면 됩니다.



Move to Contact 액션 은 여러 게임에 많이 쓰이기도 하지만, 주로 플랫폼 게임에서 중력 이동으로

블럭에 착지했을 때, 약간의 오차로 뜨는 것을 방지하기 위해 사용합니다.


Bounce 액션은 말 그대로 공과 같이 벽에 충돌해 튕기고자 할때 사용합니다.



(▲ Bounce 액션)


precise 는 충돌하는 오브젝트에 정확한 판정을 해 튕기게 할 것인지를 지정합니다.


(▲ 벽에 충돌하면 튕기게 함)


충돌 오브젝트는 Solid 오브젝트 또는 모든 오브젝트에 반응 시킬 수 있습니다.

하지만, 모든 오브젝트에 반응하게 하면 게임에 상관없는 오브젝트에 끼여 움직이지 않을 수도 있습니다.






300x250

댓글