GAME MAKER 강좌
KAYAN
이번 강좌에선 5-파트3-하강속도 감소(http://kayanworld.tistory.com/99)에서 만들었던 게임을 토대로
플레이어가 벽을 타며 올라가는 방법에 대해 알아보도록 합시다.
(▲벽타기)
◈벽타기
먼저 벽타기를 어떻게 구성할 것인지 생각해봅시다.
(▲준비상태)
일단 준비 상태에서 점프키를 누르면 점프를 하지요.
(▲벽에 닿을때 점프키를 누르면 다시 점프)
그리고 이전 강좌를 토대로 만들 것이기 때문에 벽에 닿는다면 속도는 약간 감소 될 것입니다.
이 상태에서 점프 키를 누르면 약간 뒤로 말려나면서 위로 이동하게 합니다.
점프 간격에는 약간의 딜레이가 조금 있어야 자연스러워지겠지요.
딜레이 시간이 없다면 뭔가 '후다다닥' 하는 느낌으로 바로 올라가 버릴 것입니다.
그래서 딜레이 시간이 지난 후에 키입력을 받게 하여, 재 점프를 할 수 있게 하는 것이죠.
이제 이벤트를 한번 작성해보도록 합시다.
먼저 플레이어 오브젝트(obj_player)의 Create 이벤트에 딜레이 사용을 위해 변수를 선언하도록 해요.
(▲딜레이 변수)
Control ▶ Variables ▶ Set Variable 액션을 사용하여 변수를 선언합시다.
★ obj_player - Create 이벤트 |
이제 점프키에 대한 설정입니다.
이 점프키는 키를 한번 눌렀을 때 반응하게 해야합니다.
이벤트 메뉴 ▶ Key Press 이벤트 ▶ 사용할 점프 키(강좌에서는 [Space]키) 이벤트로 변경합시다.
이전에 만든 점프 이벤트를 다시 검토해볼까요.
(▲이전 강좌의 점프 이벤트)
먼저 플레이어 아래쪽에 솔리드 오브젝트가 있는지 체크해야하죠.
★ obj_player - [Space]키를 눌렀을때 |
그리고 vspeed를 이용해 위로 점프를 시키는 것입니다.
★ obj_player - [Space]키를 눌렀을때 |
이제 벽타기 조건입니다.
먼저 딜레이 시간을 체크해야겠지요.
Control ▶ Variables ▶ Test Variable 액션을 이용해 딜레이가 0일때 재 점프하도록 합니다.
★ obj_player - [Space]키를 눌렀을때 |
Control ▶ Other ▶ Start Block을 추가하고, 방향(xdir, -1이 왼족, 1이 오른쪽)이 어느쪽인지 체크해야합니다.
왼쪽 이벤트를 먼저 작성해볼까요.
Control ▶ Variables ▶ Test Variable 액션을 이용해 조건문을 추가합시다.
★ obj_player - [Space]키를 눌렀을때 |
Control ▶ Other ▶ Start Block을 추가하고, 벽(solid)의 방향이 왼쪽 방향에 있는지 체크해야겠지요.
Control ▶ Questions ▶ Check Empty 액션을 이용해 조건문을 추가합시다.
★ obj_player - [Space]키를 눌렀을때 |
이제 위로 이동시켜야 합니다.
Control ▶ Other ▶ Start Block을 추가하고, Move ▶ Move ▶ Speed Vertical 액션을 이용해 점프를 합니다.
★ obj_player - [Space]키를 눌렀을때 |
다음은 약간 뒤로 밀려나게 할까요.
Move ▶ Jump ▶ Jump to position 액션을 이용해 점프를 합니다.
★ obj_player - [Space]키를 눌렀을때 |
이렇게 하면 현재 방향에 반대방향으로 약간 이동하게 됩니다.
물론 뒤의 방향에 Solid오브젝트에 닿게 된다면 멈추겠지요.
점프가 끝났으니, 재 점프를 위해 약간의 딜레이를 줍니다.
Control ▶ Variables ▶ Set Variable 액션을 사용하여 딜레이 시간을 변수를 통해 설정합니다.
★ obj_player - [Space]키를 눌렀을때 |
Control ▶ Other ▶ End Block을 추가하고, 오른쪽 방향일때의 이벤트도 작성하도록 합시다.
(▲이벤트)
Control ▶ Other ▶ Else를 추가합니다.
그리고 Control ▶ Other ▶ Start Block을 추가하고, 오른쪽 방향에 벽(solid)이 있는지 체크하도록 합시다.
Control ▶ Questions ▶ Check Empty 액션을 이용해 조건문을 추가합시다.
★ obj_player - [Space]키를 눌렀을때 |
이제 위로 이동시켜야 합니다.
Control ▶ Other ▶ Start Block을 추가하고, Move ▶ Move ▶ Speed Vertical 액션을 이용해 점프를 합니다.
★ obj_player - [Space]키를 눌렀을때 |
왼쪽과 같이 약간 뒤로 밀려나게 합시다.
Move ▶ Jump ▶ Jump to position 액션을 이용해 점프를 합니다.
★ obj_player - [Space]키를 눌렀을때 |
이렇게 하면 현재 방향에 반대방향으로 약간 이동하게 됩니다.
물론 뒤의 방향에 Solid 오브젝트에 닿게 된다면 멈추겠지요.
점프가 끝났으니, 재 점프를 위해 약간의 딜레이를 줍니다.
Control ▶ Variables ▶ Set Variable 액션을 사용하여 딜레이 시간을 변수를 통해 설정합니다.
★ obj_player - [Space]키를 눌렀을때 |
(▲점프 이벤트)
이제 딜레이 시간을 처리하는 이벤트가 필요합니다.
End Step 이벤트를 추가하고, 딜레이 감소 이벤트를 작성하도록 합니다.
Control ▶ Variables ▶ Test Variable 액션을 이용해 조건문을 추가합시다.
★ obj_player - End Step 이벤트 |
Control ▶ Variables ▶ Set Variable 액션을 사용하여 딜레이 시간을 -1씩 감소시킵니다.
★ obj_player - End Step 이벤트
|
음수가 나올 수 있으니 0으로 만들어야겠지요.
Control ▶ Other ▶ Else를 추가하고, Control ▶ Variables ▶ Set Variable 액션을 사용하여 딜레이
시간을 감소시키다가 음수가 나오면 0으로 만듭니다.
★ obj_player - End Step 이벤트 |
다음은 블럭에 착지했을때 딜레이 시간을 초기화 해야합니다.
일단 블럭에 충돌했을때 이벤트를 다시 점검해보도록 합시다.
Move ▶ Jump ▶ Move to Contact 액션을 추가하고 블럭에 direction방향에 붙여줍니다.
★ obj_player - obj_block과의 충돌 이벤트 |
다음은 Move ▶ Move ▶ Speed Vertical 액션을 추가하고, 떨어지는 속도를 정지시킵니다.
★ obj_player - obj_block과의 충돌 이벤트 |
이제 Control ▶ Questions ▶ Check Empty 액션을 이용해 플레이어 아래쪽에 Solid 오브젝트가 있는지
체크하도록 합니다.
★ obj_player - obj_block과의 충돌 이벤트 |
그리고 Control ▶ Variables ▶ Set Variable 액션을 사용하여 딜레이 시간을 초기화 하도록 합니다.
★ obj_player - obj_block과의 충돌 이벤트 |
오오~ 거의 끝나가는 군요.
하지만 뱡향키에 대한 설정이 남았습니다.
딜레이 시간이 0일때 이동하게 해야하지요. 먼저 왼쪽 키에 조건을 추가하도록 해요.
(▲왼쪽 이동 조건 추가)
Control ▶ Variables ▶ Test Variable 액션을 이용하여 이동 이벤트 앞에 조건문을 추가합니다.
★ obj_player - [Left] 키를 누르고 있을때 |
이렇게 하면 딜레이가 0일때 이동을 시킬 수 있겠죠.
오른쪽키 이벤트도 같은 방법으로 추가하도록 해요.
(▲오른쪽 이동 조건 추가)
Control ▶ Variables ▶ Test Variable 액션을 이용하여 이동 이벤트 앞에 조건문을 추가해요.
★ obj_player - [Right] 키를 누르고 있을때 |
와우~! 드디어 완성되었습니다.
제대로 되는지 테스트해보도록 해요.
(▲테스트 화면)
-------- 예 제 --------
'GameMaker강좌[GM8] > 액션게임강좌' 카테고리의 다른 글
[게임메이커강좌-플랫폼]간단한 플래폼게임 만들기-5-파트3-하강속도 감소 (2) | 2013.10.29 |
---|---|
[게임메이커강좌-플랫폼]간단한 플래폼게임 만들기-5-파트2-점프 높이 조절 (6) | 2013.09.29 |
[게임메이커강좌-플랫폼]간단한 플래폼게임 만들기-5-파트1-더블 점프 (15) | 2013.09.26 |
[게임메이커강좌-플랫폼]바운스게임(공튀기기게임) 만들기-추가(부서지는 블럭) (12) | 2013.08.16 |
[게임메이커강좌-플랫폼]바운스게임(공튀기기게임) 만들기 (34) | 2013.06.17 |
댓글