<뷰 드래그해서 움직이기>
스마트폰 게임을 제작하거나 하면 화면을 드래그해서 뷰를 움직여야할때가 있습니다.
간단하게 (현재 터치좌표 - 이전좌표 = 드래그한 길이) 를 이용해서 드래그를 만들어볼까 합니다.
<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);
// 뷰가 룸의 크기 안에서만 끌리도록 합니다.
<예제파일>
프로젝트 파일을 .gmz 확장자로 뽑을수있는걸 처음알았습니다..
'GMStudio > GMS 팁/예제' 카테고리의 다른 글
게임메이커 스튜디오 :: [예제] 화면(뷰) 흔들기 (0) | 2015.10.24 |
---|---|
게임메이커 스튜디오 :: [예제] 윈도우 형식의 스크롤바 (1) | 2015.10.20 |
게임메이커 스튜디오 :: 안드로이드 빌드(apk 뽑아보기) (3) | 2015.10.04 |
게임메이커 스튜디오 :: 파일 입출력을 이용한 게임데이터 저장하고 불러오기 (6) | 2015.10.01 |
게임메이커 스튜디오 :: 잔상효과(afterimage) 구현하기 (0) | 2015.09.28 |