본문 바로가기
GameMaker강좌[GMS2]/DnD강좌-게임

[게임메이커 강좌-DnD][GMS2]두더지게임 만들기-2 : 두더지 만들기

by 타락카얀 2021. 2. 17.
728x90

 

 

GAME MAKER 강좌

 

 

KAYAN


 

 

 

 

 

◈ 두더지 만들기(obj_enemy_01)

 

 

두더지를 먼저 만들어 봅시다.

필요한 리소스들을 스프라이트 이미지로 추가합니다.

필요한 애니메이션 이미지는 4종류입니다.

 

첫번째는 서 있는 모습

두번째는 땅 속에서 위로 나오는 모습

세번째는 다시 땅 속으로 들어가는 모습

네번째는 유효타를 맞았을 때의 모습입니다.

 

이미지의 크기는 동일하면 설정하기가 좋습니다.

 

먼저 서 있는 모습을 추가합니다. 중심점을 가운데 아래쪽에 위치하도록 합니다.

 

(▲ 서 있는 모습)

 

그리고 충돌 마스크를 설정합니다.

 

(▲ 충돌 마스크 설정)

 

충돌 마스크 타입은 Precise Per Frame 을 선택합니다.

이 기능은 마스크를 프레임 단위(이미지 모양)로 체크할 수 있는 기능입니다.

애니메이션 타입에 서브 이미지들의 이미지 모양이 제각각일 때 유용한 기능입니다.

 

다음은 땅 속에서 위로 나오는 모습을 추가합니다. 마찬가지로 중심점을 가운데 아래쪽에 위치하도록 합니다.

 

(▲ 땅 속에서 위로 나오는 모습)

 

그리고 충돌 마스크 설정의 마스크 타입은 Precise Per Frame 을 선택합니다.

 

반대로 다시 땅 속으로 들어가는 모습을 추가합니다. 중심점을 가운데 아래쪽에 위치하도록 합니다.

마찬가지로 충돌 마스크 설정의 마스크 타입은 Precise Per Frame 을 선택합니다.

 

(▲ 다시 땅 속으로 들어가는 모습)

 

마지막으로 유효타를 맞았을 때의 모습을 추가합니다. 중심점을 가운데 아래쪽에 위치하도록 합니다.

이 이미지는 이펙트 효과이므로 충돌 마스크 설정할 필요는 없습니다.

 

(▲ 유효타를 맞았을 때의 이미지)

 

두더지를 총괄할 부모 오브젝트를 하나 만듭니다.

 

(▲ 부모 오브젝트)

 

오브젝트의 이름은 다른 곳에서 참조하기 쉬운 이름으로 짓는 것이 좋습니다.

강좌에서는 간단하게 obj_enemy_parent 로 짓겠습니다.

 

 

그리고 두더지 오브젝트를 하나 만듭니다.

 

(▲ 두더지 오브젝트)

 

오브젝트의 이름은 obj_enemy_01 로 하겠습니다.

두더지 오브젝트를 생성했을 때, 제일 먼저 모습을 보이는 것은 땅 속에서 나오는 모습입니다.

그렇기 때문에 오브젝트의 스프라이트는 땅 속에서 나오는 모습을 먼저 지정합니다.

Parent 를 눌러 이전에 만든 부모 오브젝트(obj_enemy_parent)를 지정해줍니다.

 

(▲ 부모 오브젝트 지정)

 

Event 를 눌러 Create 이벤트를 추가합니다.

 

(▲ 이벤트 추가)

 

그리고 Common[Assign Variable] 액션을 추가하고, 행동에 대한 변수를 선언해줍니다.

이 변수는 땅속에서 나와서 잠시 서있다가 다시 들어가는 등의 행동에 대한 변수로 사용할 것입니다.

 

(▲ Create 이벤트에서 행동에 대한 변수 선언)

 

처음 땅 속에서 나왔을 때의 애니메이션이 끝나면 다음은 서 있을 때의 모습으로 전환해야합니다.

오브젝트에 Animation End 이벤트를 추가합니다.

Animation End 이벤트는 지정된 애니메이션이 끝났을 때 실행되는 이벤트입니다.

 

그리고 Common[If Variable] 조건문 액션을 추가하고, 행동에 대한 변수를 체크합니다.

 

(▲ Animation End 이벤트)

 

이제 이미지를 전환해야합니다.

Instances[Set Sprite] 액션을 조건문 옆에 추가합니다.

 

(▲ 조건문 옆에 추가)

 

그리고 서 있는 모습으로 스프라이트 이미지를 변경합니다.

 

(▲ 서 있는 모습으로 이미지 변경)

 

행동에 대한 변수값을 변경합니다.

강좌에서는 1로 설정하겠습니다.

 

(▲ 행동에 대한 변수 action 값 변경)

 

다음은 언제까지 서 있다가 다시 땅 속으로 들아가는 가에 대해 설정해야겠지요.

이 시간은 랜덤 값을 사용하여 알람 이벤트를 통해 설정할 것입니다.

Random[Randomize]액션을 사용하여 랜덤 시드를 재설정합니다.

일반적으로 게임을 실행할 때마다 기본값으로 지정된 시드로 동일한 확률이 배당됩니다.

즉, 랜덤 패턴이 같다는 것이지요.

하지만, 게임을 실행할 때마다 다른 확률로 설정하고 싶다면, 이 랜덤 시드를 재설정 해주기만 하면 됩니다.

 

(▲ 랜덤 값)

 

그리고 Random[Get Random Number]액션을 사용하여 랜덤 범위를 지정하고, Temp 를 체크하여 값을

임의의 변수에 할당하도록 합니다. 이 값은 알람 이벤트를 실행시키는데 사용할 것입니다.

Instances[Set Alarm Countdown] 액션을 추가하고 실행할 알람을 지정한 다음, 랜덤 값을 할당합니다.

강좌에서는 알람 0 이벤트를 사용할 것입니다.

 

(▲ 알람 이벤트 실행)

 

두더지 오브젝트에 알람 0 이벤트를 추가합니다.

그리고 Instances[Set Sprite] 액션을 추가하여 땅속으로 들어가는 이미지로 변경합니다.

[Assign Variable]액션을 사용하여 행동에 대한 변수값을 변경합니다.

강좌에서는 -1로 설정하겠습니다.

 

(▲ 땅속으로 들어가는 이미지로 변경)

 

땅 속으로 들어갔다면 이제 이 오브젝트를 필요가 없어집니다.

필요가 없다면 룸에서 파기하는 것이 좋겠지요.

다시 Animation End 이벤트로 돌아와서 행동에 대한 변수를 체크합니다.

Common[If Variable] 조건문 액션을 추가하고, 땅 속으로 들어갈 때의 변수값을 체크하도록 합니다.

강좌에서는 -1 값이었죠.

 

(▲ 필요 없어진 오브젝트는 파기)

 

그리고 Instances[Destroy Instance] 액션을 조건문 옆에 추가하고 현재 오브젝트를 파기하도록 합니다.

 

 

 

- 계속 -

 

 

 

 

 

300x250

댓글