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

[게임메이커 강좌-DnD][GMS2]간단한 운석 피하기게임 만들기-4 : 운석

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

 

 

GAME MAKER 강좌

 

 

KAYAN


 

 

 

 

 

◈ 떨어지는 운석 만들기(obj_stone)

 

 

이번에는 떨어지는 운석을 만들어 봅시다.

 

(▲ 위에서 아래로 떨어지는 운석)

 

먼저 운석 이미지를 스프라이트 이미지로 추가합니다.

 

(▲ 위에서 아래로 떨어지는 운석)

 

중심점을 가운데로 맞춰도 되고, 0,0으로 나둬도 상관은 없습니다.

충돌 마스크 설정을 눌러 어디까지 다른 오브젝트와 충돌을 감지가능한 범위인지를 지정합니다.

 

(▲ 충돌 마스크 설정)

 

강좌에서는 그냥 기본 설정으로 두겠습니다.

 

오브젝트를 하나 만들고, 운석 이미지를 지정해줍니다.

 

(▲ 운석 오브젝트)

 

오브젝트의 이름은 간단하게 obj_stone 이라고 짓겠습니다.

운석의 크기가 모두 같다면, 좀 심심할 수 있을 겁니다.

그래서 게임에서 이 운석 오브젝트의 크기는 랜덤으로 리사이징하여 떨어지도록 해 봅시다.

 

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

그리고 아래와 같이 Random 기능을 사용하여 현재 크기의 배율을 랜덤으로 얻도록 합니다.

 

(▲ 랜덤)

 

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

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

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

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

 

다음은 떨어지는 속도를 설정합니다. 랜덤 타입은 소수점포함인 Decimal 을 선택하고, 최소값과 최대값을

지정해줍니다. 그리고 Target 에 vspeed 내장 변수에 할당하도록 합니다.

vspeed는 수직방향(y축)의 속도를 나타내는 내장 변수입니다.

이 값이 음수면 위쪽으로, 양수면 아래로 이동하게 됩니다. 참고로 수평방향은 hspeed입니다.

 

(▲ 수평-수직방향)

 

그리고 이미지의 크기를 랜덤으로 0.5~3의 배율의 리사이징하도록 값을 얻도록 합니다.

다음은 오브젝트의 이미지를 확대/축소 할 수 있는 Instances[Set Instance Scale] 액션을 추가합니다.

 

(▲ Set Instance Scale 액션)

 

이제 떨어지는 운석이 되었습니다.

하지만 룸 밖(아래쪽)으로 벗어나게 됩니다만, 오브젝트는 룸에 남게 됩니다.

이게 누적되다보면 게임에 지장을 주게됩니다.

따라서 룸 밖으로 나가 더 이상 필요 없는 오브젝트는 파기하는 것이 좋습니다.

운석 오브젝트의 Outside Room 이벤트를 추가합니다.

그리고 Common[If Variable] 조건문 액션을 추가합니다.

이것은 현재 운석이 룸 아래로 벗어났는지 확인하는 것입니다.

 

(▲ If Variable 조건문)

 

현재 오브젝트를 파기하기 위해 Instances[Destroy Instance] 액션을 조건문 액션 옆에 붙이기로 합니다.

 

(▲ If Variable 조건문 옆에 붙임)

 

그러면 아래와 같이 됩니다.

 

(▲ Destroy Instance 액션)

 

조건문을 적용하려면 조건문 옆에 붙여야 하고, 그렇지 않으면 조건문이 적용되지 않은 액션이 되어 버리니

주의해야 합니다.

 

이제 운석과 플레이어와의 상호관계가 필요하겠지요.

게임 특성상 운석이 플레이어와 충돌하면 게임이 끝나도록 해야 합니다.

플레이어에 운석오브젝트와의 충돌 이벤트를 추가합니다.

 

(▲ 플레이어에서 obj_stone 과의 충돌 이벤트)

 

이벤트에 Instances[Destroy Instance] 액션을 추가하여 플레이어가 운석과 충돓하면 파기하도록 합니다.

 

(▲ 플레이어에서 obj_stone 과의 충돌 이벤트)

 

 

 

 

- 계속 -

 

 

 

 

 

300x250

댓글