/// <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"; } }
/// <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); }
/// <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); }
/// <summary> /// Lisää pelaajien laskuriin pisteitä /// </summary> /// <param name="pelaaja">mihin laskuriin lisätään</param> public void LisaaPisteet(IntMeter pelaaja) { pelaaja.AddValue(+PISTEITAPALLOSTA); }