Ejemplo n.º 1
0
        public void czy_zestrzelony()
        {
            punkty_uderzenia--;
            if (punkty_uderzenia <= 0)
            {
                czy_brak = true; 
            }

            const int liczba_cząstek = 150;
            float odcień = (float)((3 * Start.czas.TotalGameTime.TotalSeconds) % 6);
            float start = losowo.następny_float(0, MathHelper.TwoPi / liczba_cząstek); 
            Color kolor = Kolor_zmiana.zmiana_do_koloru(odcień, 0.25f, 1);

            for (int i = 0; i < liczba_cząstek; i++)
            {
                Vector2 pręd = Prędkość_math.z_krzywej(MathHelper.TwoPi * i / liczba_cząstek + start, losowo.następny_float(8, 16));
                Vector2 poz = pozycja + 2f * pręd;
                var state = new Cząstki_stan()
                {
                    Prędkość = pręd,
                    Mnożnik_długość = 1,
                    Typ = cząstki_typ.Zignoruj_grawitacje
                };

                Start.Cząstki_menadżer.stwórz_cząstkę(Tekstury.laser, poz, kolor, 90, 1.5f, state);
            }
        }
Ejemplo n.º 2
0
        public void czy_zestrzelony()
        {
            czy_brak = true;

            float odcień1 = losowe.następny_float(0, 6);
            float odcień2 = (odcień1 + losowe.następny_float(0, 2)) % 6f;
            Color kolor1  = Kolor_zmiana.zmiana_do_koloru(odcień1, 0.5f, 1);
            Color kolor2  = Kolor_zmiana.zmiana_do_koloru(odcień2, 0.5f, 1);

            Zawartość.Dźwięk.Eksplozje.Play(0.5f, losowe.następny_float(-0.2f, 0.2f), 0);
            for (int i = 0; i < 120; i++)
            {
                float speed = 18f * (1f - 1 / losowe.następny_float(1f, 10f));
                var   state = new Cząstki_stan()
                {
                    Prędkość        = losowe.następny_wektor(speed, speed),
                    Typ             = cząstki_typ.Przeciwnik,
                    Mnożnik_długość = 1f
                };

                Color color = Color.Lerp(kolor1, kolor2, losowe.następny_float(0, 1));
                Start.Cząstki_menadżer.stwórz_cząstkę(Tekstury.laser, pozycja, color, 190, 1.5f, state);
            }
            Gracz_status.dodaj_punkty(punkt_wartość);
            Gracz_status.zwiększ_mnożnik();
        }
Ejemplo n.º 3
0
        public override void Update() 
        {
            var jednostki = Jednostka_menadżer.pobierz_jednostki(pozycja, 250);

            foreach (var Jednostki in jednostki)
            {
                if (Jednostki is Przeciwnik && !(Jednostki as Przeciwnik).czy_aktywny)
                {
                    Jednostki.Prędkość += (Jednostki.pozycja - pozycja).skaluj_do(0.3f);
                }
                else
                {
                    var Poz = pozycja - Jednostki.pozycja;
                    var długość = Poz.Length();

                    Jednostki.Prędkość += Poz.skaluj_do(MathHelper.Lerp(2, 0, długość / 250f));
                }
            }

            if ((Start.czas.TotalGameTime.Milliseconds / 250) % 2 == 0)
            {
                Vector2 pręd = Prędkość_math.z_krzywej(kąt, losowo.następny_float(12, 15));
                Color kolor = Kolor_zmiana.zmiana_do_koloru(5, 0.5f, 0.8f); 
                Vector2 poz = pozycja + 2f * new Vector2(pręd.Y, -pręd.X) + losowo.następny_wektor(4, 8);
                var stan = new Cząstki_stan()
                {
                    Prędkość = pręd,
                    Mnożnik_długość = 1,
                    Typ = cząstki_typ.Przeciwnik
                };

                Start.Cząstki_menadżer.stwórz_cząstkę(Tekstury.laser, poz, kolor, 190, 1.5f, stan);
            }

            kąt -= MathHelper.TwoPi / 50f;
        }