コード例 #1
0
    /// <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;
        }
    }
コード例 #2
0
    /// <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);
            }
        }
    }