/// <summary> /// Luodaan asteroidioliot /// </summary> /// <param name="maara">Kuinka monta luodaan</param> private void LuoAsteroidit(int maara) { double koko = 550; for (int i = 0; i < maara; i++) { /* * Vector p1paikka = pelaaja1.Alus.Position; * Vector p2paikka = pelaaja2.Alus.Position; * * bool nok = true; * Vector paikka = uusiPaikka(koko); * double px1 = paikka.X - koko; * double px2 = paikka.X + koko; * double py1 = paikka.Y - koko; * double py2 = paikka.Y + koko; * * while (nok) * { * if (px1 <= p1paikka.X && p1paikka.X <= px2) { paikka = uusiPaikka(koko); continue; } * if (py1 <= p1paikka.Y && p1paikka.Y <= py2) { paikka = uusiPaikka(koko); continue; } * if (px1 <= p2paikka.X && p1paikka.X <= px2) { paikka = uusiPaikka(koko); continue; } * if (py1 <= p2paikka.Y && p1paikka.Y <= py2) { paikka = uusiPaikka(koko); continue; } * nok = false; * } */ Vector paikka = uusiPaikka(koko); var asteroidi = new Asteroidi(this, paikka, RandomGen.NextDouble(80, koko), Color.Gray, "Asteroidi"); asteroidi.Image = LoadImage("Asteroidi4"); this.asteroideja += 1; } }
/// <summary> /// Muutetaan pelaajan aluksen elämälaskurin arvoa /// </summary> /// <param name="asteroidi">Asteroidi, johon on osuttu</param> /// <param name="maara">Elämälaskurin muutoksen määrä</param> private void MuutaLaskuria(Asteroidi asteroidi, int maara) { asteroidi.ElamaLaskuri.Value -= maara; if (asteroidi.ElamaLaskuri == 0) { asteroidi.Destroy(); KasitteleRajahdys(asteroidi); asteroideja--; if (asteroideja < minAsteroideja) { Timer respawnLaskuri = new Timer(); respawnLaskuri.Interval = 3; respawnLaskuri.Timeout += delegate { LuoAsteroidit(minAsteroideja - asteroideja); }; respawnLaskuri.Start(1); } } }