GAME MAKER 강좌
KAYAN
◈ 플레이어 만들기(obj_player)
먼저 플레이어부터 만들어 봅시다.
플레이어 이미지를 에셋탭의 스프라이트 폴더에 스프라이트 이미지로 추가합니다.
강좌에서는 1장의 이미지를 추가하겠습니다.
(▲ 플레이어 이미지)
그리고 이미지의 중심점을 가운데로 맞춥니다.
충돌 마스크 설정을 눌러 어디까지 다른 오브젝트와 충돌을 감지가능한 범위인지를 지정합니다.
※ 충돌 마스크 설정을 누르면 이미지 안에 어디까지가 충돌 범위인지 검은색 반투명 형태로 볼 수 있습니다.
(▲ 충돌 마스크 설정)
다음은 오브젝트를 추가합니다.
오브젝트의 이름은 다른 곳에서 참조하기 쉬운 이름으로 짓는 것이 좋습니다.
강좌에서는 간단하게 obj_player로 짓겠습니다.
(▲ 플레이어 오브젝트)
이제 플레이어를 이동시키는 이벤트를 작성해야 합니다.
먼저 왼쪽 키부터 작성해봅시다.
그리고 오브젝트의 Event 버튼을 누릅니다.
(▲ Events)
이벤트 창이 뜨면 [Add Event] 버튼을 누르면 사용할 수 있는 이벤트 메뉴가 활성화됩니다.
(▲ Events)
우리는 왼쪽 키 이벤트가 필요하겠지요.
Key Down 이벤트 ▶ 왼쪽 키를 선택하여 키 이벤트를 추가합니다.
[참고]
Key Down : 키를 누르고 있을 때 (연속성. 키를 계속 누른 상태가 필요할 때 사용)
key Pressed : 키를 눌렀을 때(일회성. 키를 눌렀을 때만 1회 실행)
key Up : 키를 눌렀다 떼었을 때(일회성. 키를 눌렀다 떼었을 때만 1회 실행)
※ 플레이어의 이동은 키를 누르면 연속으로 이동시켜야 하므로 Key Down 이벤트가 적합합니다.
왼쪽 키 이벤트에 Movement 의 [Jump To Point] 액션을 추가합니다.
게임메이커의 좌표는 아래와 같습니다.
(▲ 좌표)
현재 (x, y) 기준으로 왼쪽은 -x, 오른쪽은 +x 입니다.
위쪽은 -y, +y가 됩니다.
예를 들어 -5의 속도로 왼쪽으로 이동시킨다면, 아래와 같이 x축을 기반으로 설정하면 됩니다.
(▲ 왼쪽 키 이벤트)
왼쪽으로 더 빨리 이동시키고 싶다면 더 낮은 값으로 설정하면 됩니다.
그리고 [Relative] 를 체크하도록 합니다. [Relative] 는 (x, y)좌표 기준의 상대값으로 처리할 때 사용합니다.
[Relative] 를 체크해제하면 룸의 절대값으로 처리합니다.
왼쪽 키 이벤트가 끝났습니다. 간단하죠.
오른쪽 키 이벤트를 추가하고, 이번엔 x 값을 반대로 +5 값으로 설정합시다.
(▲ 오른쪽 키 이벤트)
이렇게 하면 왼쪽으로 이동하는 속도와 같은 속도로 오른쪽으로 이동하게 됩니다.
이번에는 위쪽 키도 설정해봅시다.
위쪽의 수직방향은 y축을 기반으로 합니다. 따라서 -5 를 입력하면 위로 이동하게 되겠죠.
(▲ 위쪽 키 이벤트)
마지막으로 아래쪽 키를 설정해봅시다.
아래쪽은 위쪽과 마찬가지로 y축을 기반으로 합니다. 따라서 +5 를 입력하면 아래로 이동하게 되겠죠.
(▲ 위쪽 키 이벤트)
이동 설정이 간단하게 끝났습니다. 뭐~ 별거 없네요.
하지만 이제부터 시작입니다.
◈ 테스트
룸은 프로젝트 초반에 룸 폴더에 미리 생성되어있을 겁니다.
만약 없다면 새로 생성합시다.
그리고 룸을 하나 더블 클릭하고, 룸을 편집하도록 합니다.
Properties의 룸의 크기를 지정해줍니다.
강좌에서는 화면의 크기를 640 x 480크기로 지정할 것입니다.
따라서 가로 640, 세로 480 를 지정합니다.
(▲ 룸)
다음은 플레이어를 룸에 배치하도록 합시다ㅏ.
인스턴스 레이어를 선택하고, 플레이어 오브젝트를 드래그하여 룸에 배치하도록 합니다.
(▲ 룸에 플레이어 오브젝트를 배치)
※ [참고] 단축키 [Alt]+[마우스 왼쪽버튼] : 오브젝트가 선택된 상태에서 키보드 [Alt]키를 누른 채, 룸에 마우스 왼쪽 키를
누르면 선택된 오브젝트를 배치할 수 있습니다.
하지만, 룸에 아무 것도 없으니 허전하죠. 배경이라도 배치하도록 합시다.
강좌에서는 아래와 같은 이미지를 배경으로 배치하겠습니다.
(▲ 배경으로 사용할 스프라이트 이미지)
그리고 다시 룸으로 돌아와서 배경레이어를 선택하고, 배경 레이어 Properties 에 배경이미지를 지정해줍니다.
(▲ 짜잔~ 배경이 표시되었습니다.)
음. 밋밋하지만 그냥 이대로 진행하죠.
Run을 클릭하여 게임을 테스트합니다.
테스트하게 되면 플레이어가 룸 안에서 이동하지만, 룸 밖으로도 나가게 될 겁니다.
플레이어가 룸 안에서만 이동하도록 만들어 봅시다.
플레이어 오브젝트에 End Step 이벤트를 추가하고, Instances ▶ [Set Instance Variable] 액션을 추가합니다.
여기서 플레이어의 현재 좌표 (x, y)값을 제한 할 것이므로 액션 앞의 (+)버튼을 눌러 2개로 만듭니다.
그리고 아래와 같이, 각 변수(Variable)에 x좌표와 y좌표를 선택하고 clamp 함수를 사용하여 현재 좌표를
제한하도록 합니다.
(▲ 현재좌표 제한)
y 좌표의 경우 룸의 x축으로 (16) ~ (룸의 너비-16) 사이만 이동할 수 있게 되고, y 좌표의 경우 룸의 y축으로
(16) ~ (룸의 높이-16) 사이만 이동할 수 있게 됩니다.
잘 작동하는지 다시 테스트합니다.
※ [참고]
◎ room_width : 현재 룸의 너비
◎ room_width : 현재 룸의 높이
◎ clamp(val, min, max) : 변수를 최소값 ~ 최대값 사이의 값으로 제한 할 때 사용합니다.
- 계속 -
'GameMaker강좌[GMS2] > DnD강좌-게임' 카테고리의 다른 글
[게임메이커 강좌-DnD][GMS2]간단한 운석 피하기게임 만들기-6 : 이펙트 추가 (0) | 2021.02.15 |
---|---|
[게임메이커 강좌-DnD][GMS2]간단한 운석 피하기게임 만들기-5 : 게임 제어 (0) | 2021.02.15 |
[게임메이커 강좌-DnD][GMS2]간단한 운석 피하기게임 만들기-4 : 운석 (0) | 2021.02.15 |
[게임메이커 강좌-DnD][GMS2]간단한 운석 피하기게임 만들기-2 : 리소스 추가 방법 (0) | 2021.02.14 |
[게임메이커 강좌-DnD][GMS2]간단한 운석 피하기게임 만들기-1 (0) | 2021.02.14 |
댓글