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

[게임메이커 강좌-기초][GMS2]마우스 좌표

by 타락카얀 2023. 1. 18.
728x90

 

 

GAME MAKER 강좌

 

KAYAN

 

 

 

 

 

 

◈ 마우스 좌표

 

 

마우스 포인터 좌표에 대해 알아봅시다.

 

(▲ 마우스 포인터 좌표)

 

마우스 포인터의 좌표은 기본적으로 아래 변수로 얻을 수 있습니다.

 


   ◎ mouse_x
   ◎ mouse_y


 

게임메이커의 내장 변수로 룸 상의 기본 마우스 포인터 좌표 x 또는 y 위치를

반환합니다.

 


   x = median(64, mouse_x, room_width - 64);
   y = median(64, mouse_y, room_height - 64);


 

게임메이커는 터치 기기의 터치 좌표를 얻을 수 있는 기능이 있습니다.

 

아래 함수는 룸 상에서 장치 터치의 x, y 위치를 반환합니다.

 


   ◎ device_mouse_x(device)
   ◎ device_mouse_y(device)


 

mouse_x, mouse_y 변수에 터치 수를 체크할 수 있는 기능이 추가된 함수이며,

마우스 장치 겸용으로 사용할 수 있습니다.

HTML5 또는 PC 및 Mac 모듈에서 실행하는 경우, 이 값은 마우스 장치가 연결되어있는 한

지속적으로 업데이트되지만, 모바일 장치의 경우 화면이 표시되는 동안에만 업데이트됩니다.

터치하고 감지 할 수 있는 최대 터치 수는 사용중인 장치와 실행되는 OS에 따라 크게 달라집니다.

참고로 device 0 은 첫번째 터치이고, 마우스 장치 경우, 마우스 포인터 위치가 됩니다.

 


   if device_mouse_check_button(0, mb_left){
      if device_mouse_x(0) > x-32 && device_mouse_x(0) < x+32{
         pressed = true;
      }
      else{pressed = false;}
   }


 

아래 함수는 GUI 레이어와 관련하여 장치에서 터치의 x 위치를 반환합니다.

 


   ◎ device_mouse_x_to_gui(device)
   ◎ device_mouse_y_to_gui(device)


 

이 함수는 룸 상의 좌표가 아닌 GUI 레이어의 좌표를 반환하므로 뷰 위치 및 크기는

무시합니다.

이 기능을 사용하면 실제 GUI 크기를 기반으로 해당 위치를 얻을 수 있으므로

GUI 버튼과 HUD 요소를 더 쉽게 만들고 상호 작용할 수 있습니다.

마우스 장치 경우, GUI 레이어상의 마우스 포인터 위치가 됩니다.

 


   if device_mouse_check_button(0, mb_left){
      if device_mouse_x_to_gui(0) > 0 && device_mouse_x_to_gui(0) < 32{
         pressed = true;
      }
      else{pressed = false;}
   }


 

아래 함수는 장치 터치의 원시 x 또는 y 위치를 반환합니다.

 


   ◎ device_mouse_raw_x(device)

   ◎ device_mouse_raw_y(device)

 

터치되는 x, y 위치의 실제 장치 값을 반환하므로 뷰 위치 및 크기 조정, GUI 레이어와

같은 것을 무시합니다.

즉, 룸, 또는 GUI 레이어 상의 좌표가 아니라 출력 화면의 좌표를 반환하는 것입니다.

마우스 장치 경우, 출력 화면상의 마우스 포인터 위치가 됩니다.

 


   if device_mouse_check_button(0, mb_left) && device_mouse_check_button(1, mb_left){
   
      x_av = mean(device_mouse_raw_x(0), device_mouse_raw_x(1));
      y_av = mean(device_mouse_raw_y(0), device_mouse_raw_y(1));
   

   }


 

 

 

 

 

 

 

 

 

300x250

댓글