게임제작/소스코드

[게임메이커]2D카메라 기법 줌인 줌아웃

게임코드프리 2017. 3. 20. 16:33
반응형

#게임메이커

 

2D 게임에서도 카메라를 따로 세팅을 하면 여러가지 효과를 줄 수 있습니다.

캐릭터 보다 늦게 따라가게 하거나 특정 위치에 있으면 줌인 , 줌아웃 같은 기능들이 들어간

게임들을 볼 수 있는데, 간단하게 구현해 보았습니다.

 

obj_2dcamera

 

먼저 게임메이커에서 오브젝트를 하나 생성하여 obj_2dcamera 라는 이름으로

생성을 해주었습니다.(이름은 상관없음)

오브젝트를 더블클릭하여 Add Event 버튼을 눌러 Create 이벤트를 생성하고

변수를 설정합니다.

 

 

camera_spd 는 카메라가 움직이는 속도를 제어하기 위해서 생성한 변수 이고

x,y좌표의 경우는 최초 플레이어의 좌표로 처음 생성될 때

찾아가기 위한 설정이므로 반드시 필요한 변수는 아닙니다.

 

주의!! : obj_player 는 제가 만들어놓은 캐릭터의 오브젝트이며 각자 만든 이름에 맞게

설정을 해야 이 코드는 작동합니다.

 

[Step Event 설정]

 

 

스텝 이벤트의 코드 설명을 하자면, 첫줄 부터 4번째 줄까지는 카메라가

플레이어와 접촉하지 않았을시에만 쫓아가게 하는 코드이며

6~13줄의 부분은 플레이어가 중력을 받으면(제 게임에서) 카메라가 너무 늦게 따라가기 때문에 

이 상황에서만 카메라 속도값을 증가시켜 빨리 쫓아가도록 설정하였습니다.

 

//줌 인, 아웃

플레이어의 위치가 룸의 윗부분으로 올라가면 줌아웃이 되게 설정하였고 ,

줌인 줌아웃을 설정하기 위해서는 위의 코드 외에도 아래와 같은 Rooms 폴더 위치에

룸을 만들어 설정을 해주어야 합니다.

view_wview[0] 혹은 view_hview 이후 숫자값의 크기만큼 줌인 줌아웃이 진행되며

숫자가 클수록 줌인,줌아웃이 빨라집니다.

 

Room settings

 

 

이때 중요한 세팅은 Enable the use of Views를 체크하고

Visible when room starts 에도 체크를 합니다.

그리고 640 x 480이 게임의해상도를 결정하는 뷰라고 생각하시면 되며

이 크기를 줄이고 늘리고 하기위해 꼭 필요한 세팅입니다.

이후 , Object following 이라고 써있는 부분에서 아까 생성한 obj_2dcamera를 설정하며

Hbor : 320 Vbor :240 은 해상도의어느 시점부터 화면을 스크롤 할지를

결정하는 값이라 생각하면 됩니다.

 

당연하겠지만 만들어진 obj_2dcamera를 룸 아무 곳에나 배치를 시켜놓고

플레이를 하면 정상 작동하는 것을 확인 할 수 있습니다.

반응형
facebook twitter kakaoTalk kakaostory naver band shareLink
人気ブログランキングでフォロー