강의, 책/[DirectX, C++] 게임 매니악스 알고리즘 시리즈

[슈팅 알고리즘] Chapter 2. 탄환 (탄환의 위치)

hye3193 2024. 4. 19. 16:37

2.7 탄환을 제거하기

탄환의 좌측 상단 좌표를 (x0, y0), 우측 하단의 좌표를 (x1, y1)이라고 하고,

화면 테두리의 좌측 상단 좌표를 (sx0, sy0), 우측 하단의 좌표를 (sx1, sy1)이라고 했을 때

탄환이 화면 밖으로 빠져나갔는지 여부를 확인하는 방법은 아래와 같다

// 탄환이 완전히 화면 밖에 있을 조건
(x1 < sx0 || sx1 <= x0 || y1 <= sy0 || sy1 <= y0)

// 탄환이 완전히 화면 안에 있을 조건
(sx0 <= x0 && x1 <= sx1 && y0 <= sy0 && sy1 <= y1)

 

2.8 탄환의 충돌 판정

탄환의 좌측 상단 좌표를 (x0, y0), 우측 하단의 좌표를 (x1, y1)이라고 하고,

메인 캐릭터의 좌측 상단 좌표를 (mx0, my0), 우측 하단의 좌표를 (mx1, my1)이라고 했을 때

!(x1 <= mx0 || mx1 <= x0 || y1 <= my0 || my1 <= y0)
(mx0 < x1 && x0 < mx1 && my0 < y1 && y0 < my1)

캐릭터에 탄환이 맞았을 조건은 위와 같이(둘 중 하나) 구할 수 있다

(탄환의 일부가 화면 안에 있을 조건과 동일)