본문 바로가기

GMStudio/GMS 팁/예제

게임메이커 스튜디오 :: 뷰 드래그해서 움직이기

<뷰 드래그해서 움직이기>

 

 

 

스마트폰 게임을 제작하거나 하면 화면을 드래그해서 뷰를 움직여야할때가 있습니다.

간단하게 (현재 터치좌표 - 이전좌표 = 드래그한 길이) 를 이용해서 드래그를 만들어볼까 합니다.


 

 

<Create 이벤트>

 

이전 좌표를 저장하기위한 prev_y 변수와, 현재 터치좌표와의 차를 담아두기위한 diff_y 를 선언한였습니다.

drag_spd는 최대 이동할 속도로 둡시다.

 


 

 

<Step 이벤트>

 

 

 

[1] if (device_mouse_check_button_pressed(0, mb_left))

[2]     prev_y = device_mouse_y(0);

// 마우스 (스마트폰에서는 터치) 하는 순간에 이전좌표로 사용할 변수에 터치좌표를 저장합니다.

 

[4] if (device_mouse_check_button(0, mb_left))

[6]    diff_y = device_mouse_y(0) - prev_y;

// 터치를 하고있는 도중인지 체크해서 드래그한 길이를 구해옵니다.

 

[10] diff_y *= 0.95;

// 터치 뗏을때 뷰가 이동하는 속도가 서서히 감소하도록 합니다.

 

[13] if ((abs(diff_y) > 4))

//적어도 4픽셀 이상 끌어야 뷰가 이동하도록 설정 (스마트폰에 넣을땐 10정도 넣는걸 추천합니다)

 

[17] if (diff_y > 0)
[18]     view_yview[0] += min(drag_spd,abs(diff_y));
[19] else           
[20]     view_yview[0] -= min(drag_spd,abs(diff_y));
// 뷰 이동하는 부분

 

[24] view_yview[0] = median(0, view_yview[0], room_height - view_hview);

// 뷰가 룸의 크기 안에서만 끌리도록 합니다.

 


 

<예제파일>

TempProject.gmz

 

프로젝트 파일을 .gmz 확장자로 뽑을수있는걸 처음알았습니다..