示例#1
0
 public DzialoRakietowe(Rakieta p, int czest)
 {
     Pierwowzor    = p;
     Czestotliwosc = czest;
     T             = 0;
     Gotowy        = false;
 }
示例#2
0
        public void Pracuj(Vector2[] gdzie, int ile, bool laser, bool rakieta)
        {
            if (Zniszczony)
            {
                return;
            }
            if (ile != 0)
            {
                Dokad = gdzie[0];

                Vector2 dif = Dokad - Pozycja;
                dif.Normalize();
                Normalna = dif;
                Ruch     = Rodzaj_Ruchu.RuchJednostajny;
                Stop     = false;
            }

            if (Vector2.Distance(Pozycja, Dokad) < 5f)
            {
                Stop = true;
            }
            if (!Stop)
            {
                Pozycja += Normalna * V;
            }

            Wyposazenie.Lasery[IDLasera].Pracuj();
            Wyposazenie.Rakiety[IDRakiety].Pracuj();

            if (laser)
            {
                if (Wyposazenie.Lasery[IDLasera].Strzel())
                {
                    Laser nowy = new Laser(Pozycja, ref Wyposazenie.Lasery[IDLasera].Pierwowzor.Obrazek, 0f, Wyposazenie.Lasery[IDLasera].Pierwowzor.Sila,
                                           new Vector2(0f, -1f), Wyposazenie.Lasery[IDLasera].Pierwowzor.V, Wyposazenie.Lasery[IDLasera].Pierwowzor.KolorLaseru);
                    GlobalAcc.ListaObiektow2.Add(nowy);
                }
            }
            if (rakieta)
            {
                if (Wyposazenie.Rakiety[IDRakiety].Strzel())
                {
                    Rakieta nowa = Wyposazenie.Rakiety[IDRakiety].Pierwowzor.Kopia(Pozycja, Wyposazenie.Rakiety[IDRakiety].Pierwowzor.V, 0f);
                    Random  rand = new Random();
                    if (rand.Next(0, 2) == 1)
                    {
                        nowa.Niestabilnosc = -nowa.Niestabilnosc;
                    }
                    GlobalAcc.ListaObiektow1.Add(nowa);
                }
            }

            Silnik.X     = (int)Pozycja.X;
            Silnik.Y     = (int)Pozycja.Y;
            Silnik.Obrot = Obrot;
            Silnik.Pracuj(!Zniszczony);
            DoublePoints.Pracuj();
        }