====== DX 2D비행슈팅강좌 ======
===== 7. 적과의 충돌체크 =====
엘군의 요청에 따라 충돌체크
1. 적의 게이지를 만들어준다.
2. 적도 보이기 상태를 TRUE로 해준다.
3. 충돌체크하고 게이지 깍기
4. 적의 게이지 판별
5, 적 그릴때 그릴지 판별
1. 적의 게이지를 만들어준다.
INT g_EnemyGage = 200;
2. 적도 보이기 상태를 TRUE로 해준다.
g_Enemy.Visible = TRUE;
3. 충돌체크하고 게이지 깍기
for (INT i=0; i<100; ++i)
{
// 보이는 총알 중에
if ( g_Bullet[i].Visible == TRUE )
{
// 충돌 되었으면
if ( g_Bullet[i].Position.x < g_Enemy.Position.x + g_Enemy.Source.right
&&g_Enemy.Position.x < g_Bullet[i].Position.x + g_Bullet[i].Source.right
&&g_Bullet[i].Position.y < g_Enemy.Position.y + g_Enemy.Source.bottom
&&g_Enemy.Position.y < g_Bullet[i].Position.x + g_Bullet[i].Source.bottom
)
{
// 충돌한 총알은 안보이고, 게이지 깍기
if ( g_EnemyGage >= 0 )
{
g_Bullet[i].Visible = FALSE;
g_EnemyGage--;
}
}
}
}
2개의 사각형이 겹치면 충돌체크로 판단한다.
100개의 총알을 하나하나씩 충돌체크를 하며,
충돌판정이 일어나면, 적의 게이지를 깍는다.
그리고, 총알을 보이지 않게 한다.
4. 적의 게이지 판별
if ( g_EnemyGage <= 0 )
{
g_Enemy.Visible = FALSE;
}
적의 게이지가 0보다 작으면 안보이게 한다.
5, 적 그릴때 그릴지 판별
if ( g_Enemy.Visible == TRUE )
g_pSprite->Draw( g_Enemy.Texture, &g_Enemy.Source, &g_Enemy.Center, &g_Enemy.Position, 0xffffffff );
이전에는 그냥 그렸는데, 지금은 적의 그릴지 여부를 판단해서 그린다.
D3DSprite07.zip
