GAME MAKER 강좌
KAYAN
◈ 플레이어의 점프공격
아래와 같이 마리오 게임처럼 플레이어가 점프를 해서 슬라임을 공격하는 기능을 만들어 봅시다.
(▲ 플레이어의 점프 공격)
플레이어 오브젝트로 이동해서 슬라임의 부모 오브젝트(obj_enemy)와의 충돌 이벤트를 추가합니다.
그리고 [If Expression] 조건문 액션을 추가합니다.
[If Expression] 조건문 액션은 여러개의 조건문을 구성할 때 사용합니다.
첫번째 조건문은 vspeed(수직속도)가 0보다 클 때로 합니다.
이것은 점프를 하다 아래로 내려올 때를 말합니다(반대로 위로 올라간다면 vspeed 값은 0보다 작습니다).
(▲ 점프공격 조건 구성)
두번째 조건문은 점프변수가 점프중일 떄로 합니다. 또는 place_free(x,y+1) 로 설정해도 같습니다.
그리고 충돌 상대의 슬라임의 체력변수를 감소시키도록 합니다.
[Assign Variable] 액션을 추가하고 [▼] 버튼을 클릭합니다.
(▲ 슬라임 체력 감소)
플레이어와의 충돌 상대인 Other 를 선택합니다.
(▲ Other 선택)
공격이 성공하면 플레이어를 약간 띄워봅시다.
[Assign Variable]액션을 추가하고, vspeed 를 음수값을 지정합니다.
(▲ 공격 성공 후 점프)
다음은 슬라임이 공격받고 파기 될 때 생성되는 이펙트을 만들어 봅시다.
이펙트 이미지를 스프라이트로 추가하고, 중심점을 맞춥니다.
(▲ 이펙트 이미지)
오브젝트를 하나 만들고 이미지를 지정합니다.
이름은... obj_effect_01 로 하겠습니다.
(▲ 이펙트 오브젝트)
Animation End 이벤트를 추가합니다.
Instances ▶ [Destroy Instance] 액션을 추가하고 애니메이션이 끝났을 때 파기하도록 합니다.
(▲ 애니메이션이 끝나면 파기)
슬라임 오브젝트(obj_en_01)로 이동해서 Destroy 이벤트를 추가하도록 합니다.
※Destroy 이벤트는 오브젝트가 파기 될 때 발생하는 이벤트입니다.
(▲ Destroy 이벤트 추가)
Destroy 이벤트에 Instances ▶ [Create Instance] 액션을 추가하고 슬라임의 현재 (x,y) 위치에
이펙트를 생성하도록 합니다.
Layer 는 이펙트를 생성할 룸의 인스턴스 레이어 이름을 지정하면 됩니다.
(▲ Destroy 이벤트에서 이펙트 생성)
다음은 플레이어가 공격상태가 아닌 상황에 슬라임과 충돌 했을 때, 반대로 플레이어가 파기되고,
게임을 재시작하도록 설정해봅시다.
먼저 게임 재시작 이벤트를 구성할 오브젝트를 하나 추가합니다.
이름은 간단하게 obj_restart 로 합시다.
(▲ 게임 재시작 오브젝트)
Create 이벤트를 추가하고, Instances ▶ [Set Alarm Countdown] 액션을 추가하고
알람 이벤트를 실행하도록 합니다.
게임을 재시작할 시간을 구성합니다. 강좌에서는 90으로 설정하겠습니다.
(▲ 알람 이벤트 설정)
알람 이벤트를 추가하고, Rooms ▶ [Restart Room]액션을 추가하고 룸을 재시작하도록 합니다.
(▲ 룸 재시작)
이제 이 오브젝트를 플레이어가 파기되면, 룸 재시작 오브젝트를 생성하고 현재 룸을 다시
플레이 할 수 있도록 구성할 것입니다.
플레이어 오브젝트로 이동해서 User 이벤트(사용자 이벤트)를 추가하도록 합니다.
(▲ User 이벤트)
※ User 이벤트는 자동으로 실행되지 않고, 스크립트와 마찬가지로 호출해야 실행되는 이벤트입니다.
(▲ User 이벤트)
강좌에서는 User Event 0번을 선택하겠습니다.
슬라임과 마찬가지로 Instances ▶ [Create Instance] 액션을 추가하고 이펙트(obj_effect_01)를
생성하도록 합니다.
다음 Instances ▶ [Create Instance] 액션을 추가하고 게임 재시작 오브젝트(obj_restart)를
생성합니다.
마지막으로 Instances ▶ [Destroy Instance] 액션을 추가하고 현재 플레이어를 파기하도록 합니다.
(▲ User 이벤트)
이 이벤트를 플레이어의 슬라임 부모 오브젝트(obj_enemy)와의 충돌이벤트에서 점프공격 조건이
안 되는 상태에서 호출하면 됩니다.
[Else] 조건문을 추가하고, Instances ▶ [Call User Event] 액션을 사용하여 이제까지 만든
User 이벤트를 호출합니다.
(▲ User 이벤트 호출)
잘 작동하는지 테스트 해봅시다.
- 계속 -
'GameMaker강좌[GMS2] > DnD강좌-게임' 카테고리의 다른 글
[게임메이커 강좌-DnD][GMS2]플랫포머 게임 만들기-8 : 트랩 만들기 (0) | 2021.03.02 |
---|---|
[게임메이커 강좌-DnD][GMS2]플랫포머 게임 만들기-7 : 플레이어 데드라인 (0) | 2021.03.01 |
[게임메이커 강좌-DnD][GMS2]플랫포머 게임 만들기-5 : 슬라임 만들기 (0) | 2021.02.28 |
[게임메이커 강좌-DnD][GMS2]플랫포머 게임 만들기-4 : 이동 제한 (0) | 2021.02.28 |
[게임메이커 강좌-DnD][GMS2]플랫포머 게임 만들기-3 : 플레이어 이동 (0) | 2021.02.27 |
댓글