public override void Pracuj() { if (Zniszczony) { return; } if (UzyjSciezek == false) { base.Pracuj(); } else { float zmianaX; float zmianaY; zmianaX = SciezkaX.Evaluate(AktT) - Pozycja.X; zmianaY = SciezkaY.Evaluate(AktT) - Pozycja.Y; //Normalna.X = zmianaX; //Normalna.Y = zmianaY; Obrot = MathHelper.PiOver2 + (float)Math.Atan2(zmianaY, zmianaX); Pozycja.X += zmianaX; Pozycja.Y += zmianaY; AktT += TPlus; } if (AktTarcza < MaxTarcza) { AktTarcza += RegTarcza; if (AktTarcza > MaxTarcza) { AktTarcza = MaxTarcza; } } }
public override void Pracuj(bool laser, bool rakieta) { base.Pracuj(); for (int i = 0; i < BronLaser.Length; i++) { BronLaser[i].Pracuj(); if (laser) { if (LaserStrzelaj[i]) { if (BronLaser[i].Strzel()) { if (LaserNaprowadzany[i]) { float ObrotLasera = MathHelper.Pi; Vector2 Normalna = new Vector2();; if (!LaserNaprowadzany[i]) { 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 + PozycjaLasera[i], ref BronLaser[i].Pierwowzor.Obrazek, ObrotLasera, BronLaser[i].Pierwowzor.Sila, Normalna, BronLaser[i].Pierwowzor.V, BronLaser[i].Pierwowzor.KolorLaseru); GlobalAcc.ListaObiektow2.Add(nowy); } } } } }///Laser Weapon /// if (rakieta) { for (int i = 0; i < BronRakieta.Length; i++) { BronRakieta[i].Pracuj(); if (RakietyStrzelaj[i]) { if (BronRakieta[i].Strzel()) { float ObrotRakiety = MathHelper.Pi; if (RakietyNaprowadzane[i]) { Vector2 dif = GlobalAcc.StatekGracza.Pozycja - Pozycja; ObrotRakiety = MathHelper.PiOver2 + (float)Math.Atan2(dif.Y, dif.X); } RakietaWroga nowa = new RakietaWroga(BronRakieta[i].Pierwowzor.Kopia(Pozycja + PozycjaRakiet[i], BronRakieta[i].Pierwowzor.V, ObrotRakiety)); Random rand = new Random(); if (rand.Next(0, 2) == 1) { nowa.Niestabilnosc = -nowa.Niestabilnosc; } GlobalAcc.ListaObiektow1.Add(nowa); } } } } }
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); } } }