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

[게임메이커강좌-기초] 가장 근접해 있는 오브젝트 찾기

by 타락카얀 2016. 12. 8.
728x90



GAME MAKER 강좌



KAYAN









◈ 가장 근접해 있는 오브젝트 찾기


아래 함수를 통해 동일한 오브젝트들 중, 가장 근접해 있는 오브젝트를 찾을 수 있습니다.



instance_nearest(x,y,object)



예를 들어, 아래 화면에서 가장 근접해 있는 오브젝트를 찾는다고 한다면,



(▲ 가장 근접해 있는 오브젝트는 어느 것?)


찾으려고 하는 대상자가 obj_unit 이라는 오브젝트일 때,


 

// 대상자가 obj_unit 일 경우

inst=instance_nearest(x,y,obj_unit);



이와 같이 한다면 obj_unit 오브젝트들 중 가장 근접해 있는 인스턴스의 ID 를 반환하게 됩니다.

그리고 그 반환된 ID 를 통해 게임 상에서 제어할 수 있게 되는 것이지요.

예를 들어, 반환된 인스턴스에 지정된 스프라이트 이미지를 교체한다면,


 

//spr_unit_change 이미지로 교체하는 경우

inst=instance_nearest(x,y,obj_unit); //가장 가까운 인스턴스의 id 를 찾음.

if instance_exists(inst){ //가까운 인스턴스가 룸에 존재하는지 확인.
with(inst){sprite_index=spr_unit_change;} //인스턴스를 제어함.
}



이와 같이 이벤트를 구성할 수 있습니다.
가장 근접해 있는 인스턴스가 있을 경우, 그 인스턴스의 스프라이트 이미지를 다른 이미지로 교체하는

것이지요.






◈ 가장 멀리 있는 오브젝트 찾기



아래 함수를 통해 동일한 오브젝트들 중, 가장 멀리 있는 오브젝트를 찾을 수 있습니다.


 

instance_furthest(x,y,object)



예를 들어, 아래 화면에서 가장 멀리 있는 오브젝트를 찾는다고 한다면,



(▲ 가장 멀리 있는 오브젝트는 어느 것?)


찾으려고 하는 대상자가 obj_unit 이라는 오브젝트일 때,


 

// 대상자가 obj_unit 일 경우

inst=instance_furthest(x,y,obj_unit);



이와 같이 한다면 obj_unit 오브젝트들 중 가장 멀리 있는 인스턴스의 ID 를 반환하게  됩니다.

그리고 그 반환된 ID 를 통해 게임 상에서 제어할 수 있어요.

예를 들어, 반환된 인스턴스의 변수 check 가 1일 때, 룸에서 파기 한다면,


 

inst=instance_furthest(x,y,obj_unit); //가장 멀리 있는 인스턴스의 id 를 찾음.

if instance_exists(inst){ //멀리 있는 인스턴스가 룸에 존재하는지 확인.
with(inst){
if check=1{instance_destroy();} //인스턴스를 제어함.
}
}



이와 같이 이벤트를 구성할 수 있습니다.
가장 멀리 있는 인스턴스가 있을 경우, 그 인스턴스의 변수 check 가 1일 때, 그 인스턴스를 파기하는

것이지요.




300x250

댓글