예제 #1
0
    /// <summary>
    /// Annetaan pelaajalle mahdollisuus ostaa uusia tykkejä.
    /// </summary>
    public void OstaTykki()
    {
        if (rahaLaskuri.Value < 5)
        {
            return;
        }
        Vector sijainti = Mouse.PositionOnWorld;

        foreach (GameObject olio in GetObjectsAt(sijainti, "tyhjä ruutu"))
        {
            AssaultRifle ase = new AssaultRifle(80, 40);
            LuoTykkitorni(ase, olio.Position);
            rahaLaskuri.AddValue(-5);
            olio.Tag = "käytetty ruutu";
        }
    }
예제 #2
0
    /// <summary>
    /// Luo pelaajan
    ///
    /// </summary>
    /// <param name="paikka">pelaajan aloituspaikka</param>
    /// <param name="leveys">pelaajan hahmon leveys</param>
    /// <param name="korkeus">pelaajan hahmon korkeus</param>
    /// <param name="kuva">pelaajan kuva</param>
    /// <returns>Palauttaa pelaajan perusteet</returns>
    private PhysicsObject LuoPelaaja(Vector paikka, double leveys, double korkeus, Image kuva, IntMeter pelaaja)
    {
        PhysicsObject koiro = new PhysicsObject(leveys, korkeus);

        koiro.Position          = paikka;
        koiro.Shape             = Shape.Circle;
        koiro.Image             = kuva;
        koiro.CanRotate         = false;
        koiro.IgnoresExplosions = true;
        koiro.Tag = "pelaaja";
        AddCollisionHandler(koiro, Tormaa);
        void Tormaa(PhysicsObject koiro, PhysicsObject kohde)
        {
            List <PhysicsObject> lattia = new List <PhysicsObject>();

            if (kohde.Tag.Equals("pelaaja"))
            {
                Explosion rajahdys = new Explosion(kohde.Width);
                rajahdys.Position = kohde.Position;
                for (int i = 0; i < AITOJENMAARA; i++)
                {
                    Vector        sijainti = RandomGen.NextVector(SIJAINTIMIN, SIJAINTIMAX) + koiro.Position;
                    PhysicsObject aita     = new PhysicsObject(LATTIANKOKO, LATTIANKOKO);
                    aita.Position = sijainti;
                    aita.Image    = LoadImage("lattia");
                    aita.MakeStatic();
                    lattia.Add(aita);
                    Add(aita);
                }

                Add(rajahdys);

                Timer poistoAjastin = new Timer();
                poistoAjastin.Interval = 1;
                poistoAjastin.Timeout += delegate()
                {
                    PoistaAita(lattia);
                };
                poistoAjastin.Start();
            }
            if (kohde.Tag.Equals("pallo"))
            {
                laskuri.AddValue(+PISTEITAPALLOSTA);
                LisaaPisteet(pelaaja);
                Explosion rajahdys = new Explosion(kohde.Width);
                rajahdys.Position = kohde.Position;
                Add(rajahdys);
                kohde.Destroy();
            }
        }

        Add(koiro);
        return(koiro);
    }
예제 #3
0
파일: pallohyppy.cs 프로젝트: walamari/ohj1
    /// <summary>
    /// Aliohjelma, jolla tähteen osuessa se katoaa, pistelaskuriin saa tietyn määrän pisteitä ja kertoo viestin,kun tähteen on osuttu.
    /// </summary>
    /// <param name="hahmo">Hahmo, joka kerää tähtiä</param>
    /// <param name="tahti">Tahti objecti, jota pelissä kerätään</param>

    public void KeraaTahti(PhysicsObject hahmo, PhysicsObject tahti)
    {
        MessageDisplay.Add("Keräsit tähden!");
        tahti.Destroy();
        pisteLaskuri.AddValue(5);
    }
예제 #4
0
 /// <summary>
 /// Lisää pelaajien laskuriin pisteitä
 /// </summary>
 /// <param name="pelaaja">mihin laskuriin lisätään</param>
 public void LisaaPisteet(IntMeter pelaaja)
 {
     pelaaja.AddValue(+PISTEITAPALLOSTA);
 }