int Boss::Colision(Character &c, int damagesound){ for (int i = 0; i < SNUM; i++){ if (c.shot[i].flag){ HitPolyDim = MV1CollCheck_Sphere(graph, -1, VGet(c.shot[i].x, c.shot[i].y, c.shot[i].z), 2.0f); if (HitPolyDim.HitNum >= 1){ life --; c.shot[i].flag = 0; for (int i = 0; i < 16; i++){ if (HitEffectFlag[i] == 0){ HitEffectPosition[i] = HitPolyDim.Dim->HitPosition; HitEffectFlag[i] = 1; } } flag |= HIT; PlaySoundMem(damagesound, DX_PLAYTYPE_BACK); } } } for (int i = 0; i < BSNUM; i++){ if (bs[i].flag){ float d; d = sqrt((bs[i].x - c.GetX())*(bs[i].x - c.GetX())) + sqrt((c.GetZ() - bs[i].z)*(c.GetZ() - bs[i].z)); d = sqrt(d * d + (c.GetY() - bs[i].y) * (c.GetY() - bs[i].y)); if (d < 4){ c.SetLife(c.GetLife() - 1); bs[i].flag = 0; bs[i].z = 100; } } } return 1; }