public void CollisionDetection(Dier dier) { for (int i = 0; i < this.Count; i++) { if (dier.Id != this[i].Id) { dier.IsBotsing(this[i]); } } }
private void _levensKlok_Tick(object sender, EventArgs e) { for (int i = 0; i < this.Count; i++) { Dier dier = this[i].ToDier(); if (dier != null) { dier.Beweeg(); CollisionDetection(dier); } } }
public override void Eet(Leven leven) { bool eet = false; if (leven.IsDier) { // Grotere dieren worden niet opgegeten: Dier prooidier = (Dier)leven; if (prooidier.GewichtMaximaal > this.GewichtMaximaal) { SnelheidObject = SnelheidObject.KeerOm(); } else { eet = true; } } else if (leven.IsPlant) { // Wat doet een alleseter met giftige planten? if (WordtVergiftigdDoor.Contains(leven.NederlandseNaam)) { if (Honger()) { this.Sterf(); leven.Sterf(); } else { // Als de plant niet eetbaar is, keer dan om: SnelheidObject = SnelheidObject.KeerOm(); } } else { eet = true; } } // Alles wat niet giftig of te groot wordt opgegeten, // tenminste als er nog plek is: if (eet == true) { if ((MaagGevuld < 100)) { MaagGevuld = MaagGevuld + leven.Voedingswaarde; leven.Sterf(); } else { SnelheidObject = SnelheidObject.KeerOm(); } } }
public bool IsBotsing(Leven leven) { if (this.Tekengebied.Overlap(leven.Tekengebied)) { Dier dier = leven.ToDier(); if (dier != null) { this.SnelheidObject = this.SnelheidObject.KeerOm(); dier.SnelheidObject = dier.SnelheidObject.KeerOm(); } Eet(leven); return(true); } return(false); }
public override void Eet(Leven leven) { // de vleeseter eet alleen maar andere dieren die kleiner zijn if (leven.IsDier) { // Grotere dieren worden niet opgegeten: Dier prooidier = (Dier)leven; if (prooidier.GewichtMaximaal > this.GewichtMaximaal) { SnelheidObject = SnelheidObject.KeerOm(); } // Als er plek is in zijn maag, eet het dier een ander dier op: else if (MaagGevuld < 100) { MaagGevuld = MaagGevuld + leven.Voedingswaarde; leven.Sterf(); } } // Als het leven geen dier is keert de vleeseter om. else { SnelheidObject = SnelheidObject.KeerOm(); } }