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)
캐릭터에 탄환이 맞았을 조건은 위와 같이(둘 중 하나) 구할 수 있다
(탄환의 일부가 화면 안에 있을 조건과 동일)
'강의, 책 > [DirectX, C++] 게임 매니악스 알고리즘 시리즈' 카테고리의 다른 글
[슈팅 알고리즘] Chapter 2. 탄환 (분열탄) (1) | 2024.04.19 |
---|---|
[슈팅 알고리즘] Chapter 2. 탄환 (원형탄) (0) | 2024.04.19 |
[슈팅 알고리즘] Chapter 2. 탄환 (n-way탄) (0) | 2024.04.19 |
[슈팅 알고리즘] Chapter 2. 탄환 (방향탄) (0) | 2024.04.19 |
[슈팅 알고리즘] Chapter 2. 탄환 (조준탄) (0) | 2024.04.17 |