private void GarderHorsBornes(Soldat a, Vector3 v) { //faire le reste if (v.X > 0 && a.HitBoxGénérale.Min.X < HitBoxGénérale.Max.X) { a.ModifierPosition(new Vector3(a.VarPosition.X + HitBoxGénérale.Max.X - a.HitBoxGénérale.Min.X, a.VarPosition.Y, a.VarPosition.Z)); } if (v.X < 0 && a.HitBoxGénérale.Max.X > HitBoxGénérale.Min.X) { a.ModifierPosition(new Vector3(a.VarPosition.X + HitBoxGénérale.Min.X - a.HitBoxGénérale.Max.X, a.VarPosition.Y, a.VarPosition.Z)); } if (v.Z > 0 && a.HitBoxGénérale.Max.Z < HitBoxGénérale.Min.Z) { a.ModifierPosition(new Vector3(a.VarPosition.X, a.VarPosition.Y, a.VarPosition.Z + HitBoxGénérale.Min.Z - a.HitBoxGénérale.Min.Z)); } if (v.Z < 0 && a.HitBoxGénérale.Min.Y > HitBoxGénérale.Max.Y) { a.ModifierPosition(new Vector3(a.VarPosition.X, a.VarPosition.Y, a.VarPosition.Z + HitBoxGénérale.Max.Z - a.HitBoxGénérale.Min.Z)); } if (v.Y < 0 && a.HitBoxGénérale.Max.Y > HitBoxGénérale.Min.Y) { a.ModifierPosition(new Vector3(a.VarPosition.X, a.VarPosition.Y + HitBoxGénérale.Min.Y - a.HitBoxGénérale.Max.Y, a.VarPosition.Z)); } if (v.Y > 0 && a.HitBoxGénérale.Min.Y < HitBoxGénérale.Max.Y) { a.ModifierPosition(new Vector3(a.VarPosition.X, a.VarPosition.Y + HitBoxGénérale.Max.Y - a.HitBoxGénérale.Min.Y, a.VarPosition.Z)); } }
protected override void SuivreTerrain(Soldat a) { a.ModifierPosition(a.VarPosition + DifferencePosition); }