2.10 원형탄
360도 전 방향으로 탄환을 발사하는 원형탄을 구현할 때에도 방향탄을 응용하면 된다
void InitCircleBullets(
int n, // 탄환의 수
float speed, // 탄환의 속도
bool odd, // 홀수 패턴일 때: true
float vx[], float vy[] // 원형탄의 속도 벡터
) {
// 탄환과 탄환 사이의 각도를 계산하기
float rad_step = M_PI * 2 / n;
// 최초의 탄환의 각도를 계산하기
// 홀수 패턴일 경우 0에서 rad_step/2만큼 회전해 줌
float rad = odd ? rad_step / 2 : 0;
// speed의 속도로 각도 rad 방향으로 날아가는 탄환의 속도 벡터 구하기
for (int i = 0; i < n; i++, rad += rad_step) {
vx[i] = cos(rad) * speed;
vy[i] = sin(rad) * speed;
}
}
방향탄을 이용해서 처음 시작 위치에서 rad_step 만큼 회전해가며 탄환을 발사해 준다
'강의, 책 > [DirectX, C++] 게임 매니악스 알고리즘 시리즈' 카테고리의 다른 글
[슈팅 알고리즘] Chapter 2. 탄환 (유도탄) (0) | 2024.04.19 |
---|---|
[슈팅 알고리즘] Chapter 2. 탄환 (분열탄) (1) | 2024.04.19 |
[슈팅 알고리즘] Chapter 2. 탄환 (n-way탄) (0) | 2024.04.19 |
[슈팅 알고리즘] Chapter 2. 탄환 (탄환의 위치) (0) | 2024.04.19 |
[슈팅 알고리즘] Chapter 2. 탄환 (방향탄) (0) | 2024.04.19 |