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); } }
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(); }
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; }