Exemple #1
0
        private void strzał_powtarzalny()
        {
            if (Prędkość.LengthSquared() > 0.1f)
            {
                orientacja = Prędkość.do_kąta();
                Quaternion rot = Quaternion.CreateFromYawPitchRoll(0f, 0f, orientacja);

                double      czas_rz         = Start.czas.TotalGameTime.TotalSeconds;
                Vector2     pręd_podstawowa = Prędkość.skaluj_do(-3);
                Vector2     pręd_przed      = new Vector2(pręd_podstawowa.Y, -pręd_podstawowa.X) * (0.6f * (float)Math.Sin(czas_rz * 10));
                Color       kolor_bok       = new Color(200, 38, 9);
                Color       kolor_środek    = new Color(255, 187, 30);
                Vector2     poz             = pozycja + Vector2.Transform(new Vector2(-25, 0), rot);
                const float alfa            = 0.7f;

                Vector2 pręd_śr = pręd_podstawowa + losowo.następny_wektor(0, 1);
                Start.Cząstki_menadżer.stwórz_cząstkę(Tekstury.laser, poz, Color.White * alfa, 60f, new Vector2(0.5f, 1),
                                                      new Cząstki_stan(pręd_śr, cząstki_typ.Przeciwnik));
                Start.Cząstki_menadżer.stwórz_cząstkę(Tekstury.żar, poz, kolor_środek * alfa, 60f, new Vector2(0.5f, 1),
                                                      new Cząstki_stan(pręd_śr, cząstki_typ.Przeciwnik));

                Vector2 pręd_1 = pręd_podstawowa + pręd_przed + losowo.następny_wektor(0, 0.3f);
                Vector2 pręd_2 = pręd_podstawowa - pręd_przed + losowo.następny_wektor(0, 0.3f);
                Start.Cząstki_menadżer.stwórz_cząstkę(Tekstury.laser, poz, Color.White * alfa, 60f, new Vector2(0.5f, 1),
                                                      new Cząstki_stan(pręd_1, cząstki_typ.Przeciwnik));
                Start.Cząstki_menadżer.stwórz_cząstkę(Tekstury.laser, poz, Color.White * alfa, 60f, new Vector2(0.5f, 1),
                                                      new Cząstki_stan(pręd_2, cząstki_typ.Przeciwnik));

                Start.Cząstki_menadżer.stwórz_cząstkę(Tekstury.żar, poz, kolor_bok * alfa, 60f, new Vector2(0.5f, 1),
                                                      new Cząstki_stan(pręd_1, cząstki_typ.Przeciwnik));
                Start.Cząstki_menadżer.stwórz_cząstkę(Tekstury.żar, poz, kolor_bok * alfa, 60f, new Vector2(0.5f, 1),
                                                      new Cząstki_stan(pręd_2, cząstki_typ.Przeciwnik));
            }
        }
Exemple #2
0
        IEnumerable <int> ścigaj_gracza(float przyśpieszenie = 1f)
        {
            while (true)
            {
                Prędkość += (Gracz_statek.Stan.pozycja - pozycja).skaluj_do(przyśpieszenie);
                if (Prędkość != Vector2.Zero)
                {
                    orientacja = Prędkość.do_kąta();
                }

                yield return(0);
            }
        }