충돌

김태훈·2025년 4월 14일

DirectX11

목록 보기
8/8

충돌 레이어 체크

하나의 level->32개의 layer
우리는 layer간의 충돌을 나타낼 것

2d일때는 win API 와 동일한 방법:
32개 layer ,UINT형태 이기 때문에 32x32의 matrix로 비트 연산을 위해 열은 오른쪽부터 시작,
행1열6 과 행6 열1은 같은 연산이므로 대각 방향으로 나눈후 한 쪽은 할 필요 없음.

충돌 이벤트

충돌체가 서로 붙으면 -begin overlap

붙은것이 떨어지면 -end overlap

충돌한 물체들의 Scritps들이 이벤트 맞는 함수들을 호출.

충돌 체크

OBB(회전축을 포함한 충돌체크)

각 충돌체의 2개씩 축을 만듦(충돌체에서의 축들이 서로 평행)

4개 축 중 하나를 기준 축으로 둠
기준축에 4개의 축을 투영 (1번 투영-임의로 내가 지은것)
기준축에 각 중점을 이은 벡터도 투영(2번 투영-임의로 내가 지은것)

각 충돌체의 2번 투영 길이의 절반을 각각 더한 길이(겹친 길이 다 더함,보라색)> 1번 투영 길이(파란색) - 충돌 기준

충돌인 이유: 기준 축에서 두 물체를 가를 기준이 없기 때문

이 위의 과정을 4개 기준 축으로 모두 실행하여 한 번 이라도 충돌이 되면 충돌, 한 번도 충돌 안되면 충돌 아님

profile
복습을 위한 핵심 내용 및 모작

0개의 댓글