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(); }
public override void Pracuj(bool laser, bool rakiety) { if (AktKadlub < MaxKadlub / 2) { LaserStrzelaj[0] = true; } base.Pracuj(laser, rakiety); Obrot = 0f; AktT %= (maxT); LeweOko.X = 64 - (int)rozmiary.X / 2 + (int)Pozycja.X; PraweOko.X = 94 - (int)rozmiary.X / 2 + (int)Pozycja.X; LeweOko.Y = 66 - (int)rozmiary.Y / 2 + (int)Pozycja.Y; PraweOko.Y = LeweOko.Y; LeweOko.Pracuj(!Zniszczony); PraweOko.Pracuj(!Zniszczony); }
public virtual void Pracuj(bool laser, bool rakieta) { base.Pracuj(); if (Silnik != null) { Silnik.X = (int)Pozycja.X; Silnik.Y = (int)Pozycja.Y; Silnik.Obrot = Obrot; Silnik.Pracuj(!Zniszczony); } if (Zniszczony) { return; } BronLaser.Pracuj(); BronRakieta.Pracuj(); if (laser && BronLaser != null) { if (BronLaser.Strzel()) { float ObrotLasera = Obrot; Vector2 Normalna = new Vector2();; if (!LaserNaprowadzany) { float zmianaX; float zmianaY; zmianaX = SciezkaX.Evaluate(AktT) - Pozycja.X; zmianaY = SciezkaY.Evaluate(AktT) - Pozycja.Y; Normalna = new Vector2(zmianaX, zmianaY); Normalna.Normalize(); } else { Normalna = GlobalAcc.StatekGracza.Pozycja - Pozycja; Normalna.Normalize(); ObrotLasera = MathHelper.PiOver2 + (float)Math.Atan2(Normalna.Y, Normalna.X); } LaserWroga nowy = new LaserWroga(Pozycja, ref BronLaser.Pierwowzor.Obrazek, ObrotLasera, BronLaser.Pierwowzor.Sila, Normalna, BronLaser.Pierwowzor.V, BronLaser.Pierwowzor.KolorLaseru); GlobalAcc.ListaObiektow2.Add(nowy); } } if (rakieta && BronRakieta != null) { if (BronRakieta.Strzel()) { float ObrotRakiety = Obrot; if (RakietyNaprowadzane) { Vector2 dif = GlobalAcc.StatekGracza.Pozycja - Pozycja; ObrotRakiety = MathHelper.PiOver2 + (float)Math.Atan2(dif.Y, dif.X); } RakietaWroga nowa = new RakietaWroga(BronRakieta.Pierwowzor.Kopia(Pozycja, BronRakieta.Pierwowzor.V, ObrotRakiety)); Random rand = new Random(); if (rand.Next(0, 2) == 1) { nowa.Niestabilnosc = -nowa.Niestabilnosc; } GlobalAcc.ListaObiektow1.Add(nowa); } } }