private bool ObjektyKoliduju(HernyObjekt prvy, HernyObjekt druhy) { RectangleF obdPrvy = prvy.ZistiOkrajeObjektu(); RectangleF obdDruhy = druhy.ZistiOkrajeObjektu(); return(obdPrvy.IntersectsWith(obdDruhy)); }
private void ZkontrolujKolizie() { for (int i = 0; i < zoznamHernychObjektov.Count; i++) { for (int j = i + 1; j < zoznamHernychObjektov.Count; j++) { HernyObjekt prvy = zoznamHernychObjektov[i]; HernyObjekt druhy = zoznamHernychObjektov[j]; if ((prvy is Strela) && (druhy is Nepriatel) || (prvy is Nepriatel) && (druhy is Strela)) { if (ObjektyKoliduju(prvy, druhy)) { OdoberObjekt(prvy); OdoberObjekt(druhy); lodHraca.PocetZasahov++; if (lodHraca.PocetZasahov == 100) { casovac.Stop(); generatorNepriatelov.Stop(); MessageBox.Show("Porazil si 100 nepriatelov si majster", "Sprava hry"); } } } else if ((prvy is Hrac) && (druhy is Nepriatel) || (prvy is Nepriatel) && (druhy is Hrac)) { if (ObjektyKoliduju(prvy, druhy)) { if (prvy is Hrac) { OdoberObjekt(druhy); lodHraca.Zivoty--; if (lodHraca.Zivoty == 0) { OdoberObjekt(prvy); generatorNepriatelov.Stop(); MessageBox.Show("Dosli ti zivoty, Prehral si!", "Sprava hry"); Application.Exit(); } } else if (druhy is Hrac) { OdoberObjekt(prvy); lodHraca.Zivoty--; if (lodHraca.Zivoty == 0) { OdoberObjekt(prvy); generatorNepriatelov.Stop(); MessageBox.Show("Dosli ti zivoty, Prehral si!", "Sprava hry"); Application.Exit(); } } } } } } }
public void OdoberObjekt(HernyObjekt h) { zoznamHernychObjektov.Remove(h); }
public void PridajObjekt(HernyObjekt h) { zoznamHernychObjektov.Add(h); }