본문 바로가기
GameMaker강좌[GM8]/기초강좌

[게임메이커강좌-기초]멀티뷰 (다중 화면 분할)

by 타락카얀 2013. 6. 14.
728x90







◈멀티뷰 (다중 화면 분할)



이번엔 화면 분할하는 방법 대해 알아봅시다.



(▲화면 분할)


위의 화면처럼 2인 이상의 플레이어들을 따로 화면에 배치할 수 있습니다.
한번 따라 해봅시다.

화면 분할은 아래와 같이 룸의 뷰 설정탭에서 뷰를 설정해요.



(▲뷰 설정 탭)


먼저 위의 화면처럼 사용할 View를 선택합니다. 뷰는 0~7번까지 총 8개를 사용할 수 있습니다.

강좌에선 간단하게 화면의 양옆으로 설정하도록 2개만 선택하도록 하겠습니다.
그리고 Enable the use of ViewsVisible when room starts를 체크되어있는지 확인하고,

체크가 안되었다면 체크하도록 해요.



(▲View 0 - 플레이어1)


다음은 View in room 에서 뷰의 크기를 설정합니다.
일단 2인용 게임이니 화면의 절반 크기로 설정하도록 합시다.

Port on screen 에서 출력할 화면 크기를 설정합니다. 이것은 실제로 플레이어가 직접 볼 수 있는 크기입니다.
화면에 출력할 위치는 화면의 좌측에 지정하도록 하겠습니다. 그리고 화면의 크기와 같은 크기로 설정해요(1:1 비율).

화면이 오브젝트를 따라 움직이게 해야겠지요. 이것은 Object following에서 지정할 수 있습니다.
화면이 플레이어1용 화면이니, 플레이어1 오브젝트를 지정하시면 됩니다.

이 오브젝트가 화면에서 미리 설정된 위치에 있을 때 움직이게 할 수 있습니다.
이 설정은 맨 아래에 있는 HborVbor에서 설정할 수 있습니다. 일단 320X480크기에서 적당한 크기를 지정하면 됩니다.
여기에선 Hbor는 160, Vbor는 120이 적당한것 같네요.

플레이어1의 설정이 간단하게 끝났네요.
다음은 화면의 우측을 사용하는 플레이어2 대한 설정을 해봅시다.


(▲View 1 - 플레이어2)


View in room 에서 뷰의 크기를 설정합니다.

Port on screen 에서 출력할 화면의 크기를 설정합니다.
이 화면은 우측에 위치하게 해야하니 X좌표를 화면의 절반 위치에 위치하도록 지정해야겠지요.
강좌에선 X의 좌표를 320으로 하겠습니다. 출력할 화면의 크기는 위와 같이 설정하면 됩니다.

이 화면은 플레이어2 전용 화면이니 Object following 에는 플레이어2 오브젝트를 지정해요.

HborVbor는 플레이어1과 마찬가지로 같게 설정하시면 됩니다.

2개의 분할 화면에 대해 설정이 끝났습니다. 굳!

이 뷰에 대해 제대로 사용하려면 몇가지 변수를 사용해야합니다.





◈화면 분할에 따른 뷰 변수


필수적으로 필요한 변수는 아래와 같습니다.


     view_xview[0~7] : 뷰의 x좌표
     view_yview[0~7] : 뷰의 y좌표
     view_wview[0~7] : 뷰의 넓이
     view_hview[0~7] : 뷰의 높이

     view_current : 현재 뷰


여러개의 뷰를 사용할 때 위의 변수를 많이 사용하게 됩니다.

일반적을 뷰가 이동할 때, 화면에 특정 글자 표시나 이미지 표시할때, 위와 같은 뷰의 좌표를 겸용으로 사용해야합니다.
예를 들면 아래와 같이


     if view_current=0{//표시할 뷰가 0번일때, 1번이면 if view_current=1
     draw_text(view_xview[0]+16,view_yview[0]+16,"PLAYER1");
     }
     //뷰가 1번이면 view_xview[1], view_yview[1]


이것은 화면에 표시할 뷰가 0번일때, (view_xview[0]+16,view_yview[0]+16)좌표에 "PLAYER1"문자를 표시하는 것입니다.

간단하죠. 헤헤~
이처럼 뷰의 좌표를 이용하면 간단하게 이미지나 글자를 표시할 수 있습니다.


이외에 자주 사용하지는 않지만, 아래와 같은 변수들도 있습니다. 참고하세요.


     view_xport[0~7] : 뷰 출력의 X위치
     view_yport[0~7] : 뷰 출력의 Y위치
     view_wport[0~7] : 뷰 출력의 넓이
     view_hport[0~7] : 뷰 출력의 높이

     view_angle[0~7] : 뷰에 대해 회전 (반시계방향)

     view_hborder[0~7] : 가로 보더의 크기
     view_vborder[0~7] : 세로 보더의 크기

     view_hspeed[0~7] : 뷰의 최대 수평속도
     view_vspeed[0~7] : 뷰의 최대 수직속도

     view_object[0~7] : 뷰를 따라다니게 할 오브젝트



(▲뷰 설정을 이용하면 화면을 분할할 수 있음. 와우~)





-------분할 화면 예제-------


multi_view.gmk


multi_view.exe



300x250

댓글