Ejemplo n.º 1
0
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;
}