본문 바로가기
개발/android

가장 기본적이고 간단한 게임 충돌검사

by 매몰 2014. 5. 20.

게임을 만들때 가장 먼저 봉착하는 막막함이 충돌검사이다...

적어도 나는 그랬다ㅎㅎ


물론 좌표이동 할때 곡선이동도 만만치 않지만ㅎㅎ

충돌검사는 케릭터의 형태에 따라 여러가지로 검사를 해야 하기 때문에 그 숫자만큼이나 더

골치가 더 아프다...


어쨋든 나는 사각, 마름모, 원, 선, 픽셀 충돌검사를 나름 내 식으로 만들어서 사용하고 있고 지금도 계속 개선중에 있다ㅎㅎ 

물론 사각 대 마름모, 마름모 대 원... 이런식으로도 사용하고 있다 


여기서는 이중 가장 간단하고 기본이 되는 사각 충돌검사를 보겠다



public boolean checkRect(Rect rect1, Rect rect2) {


if(rect1.left <= rect2.right && rect1.right >= rect2.left) {

if(rect1.top <= rect2.bottom && rect1.bottom >= rect2.top) 

return true;

}


return false;

}




사각 충돌검사


보는 바와 같이 원리도 간단하다

두 오브젝트의 사각영역을 각각의 꼭지점을 기준으로 겹쳐있는지 검사를 하는것이다


이검사는 항상 가장 먼저 이루어진다.

즉, 픽셀검사를 할때에도 먼저 사각 검사부터 하고 충돌로 판정되면 그다음에 픽셀검사를 하는것이다. 처음부터 픽셀검사를 해버리면 반복문을 너무 많이 돌기 때문에 효율성이 떨어진다. 






 

 



수제 앱 장인: 고영진


1인 개발자 

  

     실패만 하고 있어도 꿈을 포기하지 않는 남자 

     제가 직접 경험하고 습득한 지식을 위주로 올릴게요

 





사업자 정보 표시
주식회사 머리말 | 고영진 | 서울특별시 송파구 중대로 135 서관 10층 (가락동, 아이티벤처타워) | 사업자 등록번호 : 524-88-00727 | TEL : 010-9990-3674 | Mail : gyjmeba@hanmail.net | 통신판매신고번호 : 2017-서울강남-03941호 | 사이버몰의 이용약관 바로가기