コード例 #1
0
        public void DodajFigureBlokującą(FiguraZOdcinków fz, Vector2 Miejsce, object klucz)
        {
            PrzetrzeńKolizji.ObiektKolizji dodawany = new PrzetrzeńKolizji.ObiektKolizji(Miejsce);
            dodawany.wrażliwośćKolizji = relacjaFiguraAktywna;
            dodawany.Szkielet          = fz;
            Szkielety.Add(klucz, dodawany);
            List <PrzetrzeńKolizji.ObiektKolizji> pom;

            Przestrzeń.Dodaj(dodawany, out pom);
            foreach (PrzetrzeńKolizji.ObiektKolizji item in pom)
            {
                item.wrażliwośćKolizji = relacjaOdcinekMartwy;
                Krawedz k = (Krawedz)item.Szkielet;
                k.UsuńSię();
            }
        }
コード例 #2
0
        private List <Krawedz> ZnajdźPoloczenia(Punkt punkt)
        {
            List <Krawedz> zwracana = new List <Krawedz>();

            foreach (PrzetrzeńKolizji.ObiektKolizji item in Przestrzeń.ZnajdźWsztstkieKolidujące(punkt.Miejsce, punkt.MaksymalneSzukanie))
            {
                Punkt p = item.Tag as Punkt;
                if (p != null && p != punkt)
                {
                    float   odl = (p.Miejsce - punkt.Miejsce).Length();
                    Krawedz kr  = new Krawedz(p, punkt)
                    {
                        DługośćKrawedzi = odl
                    };
                    p.ListaKrawedzi.Add(kr);
                    punkt.ListaKrawedzi.Add(kr);
                    zwracana.Add(kr);
                }
            }
            return(zwracana);
        }
コード例 #3
0
        private void DodajOdcinek(PrzetrzeńKolizji.ObiektKolizji k, bool WPrzestrzeni = false)
        {
            bool b = false;

            if (!WPrzestrzeni)
            {
                List <PrzetrzeńKolizji.ObiektKolizji> opk;
                k.wrażliwośćKolizji = relacjaOdcinekMartwy;
                Przestrzeń.Dodaj(k, out opk);

                b = opk.Count == 0;
            }
            else
            {
                b = Przestrzeń.ZnajdźWsztstkieKolidujące(k).Count == 0;
            }

            if (b)
            {
                k.wrażliwośćKolizji = relacjaOdcinekAktywny;
                Krawedz kr = (Krawedz)k.Szkielet;
                kr.DodajSię();
            }
        }
コード例 #4
0
        public void ProwadźDo(Punkt Koniec)
        {
            Krawedz k = new Krawedz(this);

            k.Prowadź(Koniec);
        }