/// <summary> /// Jos pelaajalla on avain mukanaan, tuhoaa lukon kosketuksesta. /// </summary> /// <param name="ovi">Oven viite</param> /// <param name="p">Pelaajan viite</param> private void AvaaOvi(PhysicsObject ovi, Pelaaja p) { if (p.Tavarat.KaytaTavara((int)TavaraTyypit.Avaimet)) { ovi.Destroy(); } }
public void PelaajanNimiAlkaaIsolla() { Pelaaja p = new Pelaaja(); p.Nimi = "david"; Assert.AreEqual("David", p.Nimi, "Pelaajan nimen ensimmäinen kirjain ei ole iso"); }
/// <summary> /// Luodaan pelialue ja sinne asteroidit /// </summary> private void LuoKentta() { ClearAll(); loppunut = false; //IsFullScreen = true; //jos haluaa koko näyttöön. SetWindowSize(1080, 1080, false); Level.Background.Color = Color.Black; Level.Height = 6000; Level.Width = 6000; //Level.Background.Image = taustaKuvat[RandomGen.NextInt(0, taustaKuvat.Length)]; Level.Background.Image = taustaKuvat[0]; Level.Background.FitToLevel(); Level.CreateBorders(5, true); //Camera.ZoomToAllObjects(); Camera.ZoomToLevel(); Camera.StayInLevel = true; Gravity = new Vector(0, 0); pelaaja1 = new Pelaaja(0, "Pelaaja", "Pelaaja 1", p1aloitus, new Vector(400, 500), Color.Yellow, new Key[] { Key.Up, Key.Down, Key.Left, Key.Right, Key.RightControl, Key.RightShift }); pelaaja2 = new Pelaaja(1, "Pelaaja", "Pelaaja 2", p2aloitus, new Vector(-400, 500), Color.Red, new Key[] { Key.W, Key.S, Key.A, Key.D, Key.LeftControl, Key.LeftShift }); PaivitaPelaaja(pelaaja1); //päivitetään vasta, kun molemmat on luo PaivitaPelaaja(pelaaja2); LuoAsteroidit(20); }
public void AllDataTest() { Pelaaja pelaaja = new Pelaaja("Teemu", "Selänne", "anaheim ducks", 3000000); Pelaaja pelaaja2 = new Pelaaja("Patrik", "Laine", "Winnipeg Jets", 1000000); Assert.AreNotSame(pelaaja, pelaaja2); }
/// <summary> /// Tarkistetaan onko pelaajalla vielä aluksia jäljellä edellisen tuhoutumisen jälkeen /// </summary> /// <param name="pelaaja">Tarkastettava pelaaja</param> public void TarkistaLoppu(Pelaaja pelaaja) { if (pelaaja.AlusLaskuri.Value == 0) { string voittaja = " voitti!"; string nimi; if (pelaaja.Nimi.Equals(pelaaja1.Nimi)) { nimi = pelaaja2.Nimi; } else { nimi = pelaaja1.Nimi; } PeliLoppui(nimi + voittaja); } Timer respawnLaskuri = new Timer(); respawnLaskuri.Interval = 3; respawnLaskuri.Timeout += delegate { PaivitaPelaaja(pelaaja); }; respawnLaskuri.Start(1); }
public void PelaajanNimiYhdenMittainen() { Pelaaja p = new Pelaaja(); p.Nimi = "d"; Assert.AreEqual("D", p.Nimi, "Pelaajan nimi ei ala isolla alkukirjaimella"); }
public void PelaajanNimiEiOleTyhjä() { Pelaaja p = new Pelaaja(); p.Nimi = ""; Assert.AreEqual("Pelaaja", p.Nimi, "Pelaajan nimi ei ole oletus"); Assert.AreEqual(7, p.Nimi.Length, "Pelaajan nimi ei ole oletusmittainen"); }
public void PelaajaLiikkuuOikealle() { Pelaaja p = new Pelaaja(); p.Leveys = 2; p.Oikea(); Assert.AreEqual(3, p.Leveys, "Pelaaja ei liikkunut oikealle"); }
public void PelaajaLiikkuuVasemmalle() { Pelaaja p = new Pelaaja(); p.Leveys = 2; p.Vasen(); Assert.AreEqual(1, p.Leveys, "Pelaaja ei liikkunut vasemmalle"); }
public void PelaajaLiikkuuAlas() { Pelaaja p = new Pelaaja(); p.Korkeus = 2; p.Alas(); Assert.AreEqual(3, p.Korkeus, "Pelaaja ei liikkunut alaspäin"); }
public void PelaajaLiikkuuYlös() { Pelaaja p = new Pelaaja(); p.Korkeus = 2; p.Ylös(); Assert.AreEqual(1, p.Korkeus, "Pelaaja ei liikkunut ylöspäin"); }
/// <summary> /// Lataa seuraavan kentän, kun pelaaja osuu "maaliin". /// </summary> /// <param name="a">"Maalin" viite.</param> /// <param name="b">Pelaajan viite.</param> private void KenttaVaihtuu(PhysicsObject a, Pelaaja b) { HUD.LaskeKentanPisteen(b); ++CurrentLevel; pelaajanTiedot.Elamat = b.Tavarat.TavaranMaara((int)TavaraTyypit.Elama); pelaajanTiedot.Pommit = b.Tavarat.TavaranMaara((int)TavaraTyypit.Pommit); LataaKentta(); }
public void PelaajaTest1() { Pelaaja pelaaja = new Pelaaja("Teemu", "Selänne", null, 3000000); Assert.IsInstanceOfType(pelaaja.Etunimi, typeof(string)); Assert.IsInstanceOfType(pelaaja.Sukunimi, typeof(string)); Assert.IsInstanceOfType(pelaaja.Seura, typeof(string)); Assert.IsInstanceOfType(pelaaja.Siirtohinta, typeof(int)); }
/// <summary> /// Luo pelaajan peliruutuun. /// </summary> private void LuoPelaaja(Vector paikka, double leveys, double korkeus) { pelaaja = new Pelaaja(this, leveys, korkeus, pelaajanTiedot); //pelaaja.Position = paikka; PeliolionPerustiedot(pelaaja, paikka); AddCollisionHandler <Peliolio, Peliolio>(pelaaja, "vihollinen", PeliolioonOsuiPeliolio); Add(pelaaja); }
/// <summary> /// Asetetaan näppäimet pelaajalle. /// </summary> /// <param name="pelaaja">Pelaaja, jolle asetetaan</param> /// <param name="nappaimet">Taulukko näppäimistä</param> private void AsetaNappaimet(Pelaaja pelaaja, Key[] nappaimet) { Keyboard.Listen(nappaimet[0], ButtonState.Down, pelaaja.Alus.LyoAlusta, "Lyö alusta ylöspäin", 200.0); Keyboard.Listen(nappaimet[1], ButtonState.Down, pelaaja.Alus.LyoAlusta, "Lyö alusta alaspäin", -100.0); Keyboard.Listen(nappaimet[2], ButtonState.Down, delegate { pelaaja.Alus.Angle += Angle.FromDegrees(7.0); }, "Käännä alusta vasemmalle"); Keyboard.Listen(nappaimet[3], ButtonState.Down, delegate { pelaaja.Alus.Angle += Angle.FromDegrees(-7.0); }, "Käännä alusta oikealle"); //Keyboard.Listen(nappaimet[4], ButtonState.Down, delegate { PhysicsObject ammus = pelaaja.Alus.Ase1.Shoot(); }, "Ammu aseella 1"); Keyboard.Listen(nappaimet[4], ButtonState.Down, pelaaja.Alus.AmmuAseella1, "Ammu aseella 1"); Keyboard.Listen(nappaimet[5], ButtonState.Down, pelaaja.Alus.AmmuAseella2, "Ammu aseella 2"); Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); }
/// <summary> /// Suorittaa pelin loppumiseen liittyvät tapahtumat kun pelaaja törmää pinkkiin palloon. /// (CollisionHandlerin avulla) /// </summary> /// <param name="o">Pinkin pallon viite</param> /// <param name="p">Pelaajan viite</param> private void VoitaPeli(PhysicsObject o, Pelaaja p) { if (o.Animation.CurrentFrameIndex == 0) { o.Animation.Step(); } p.Hp = -1; HUD.LaskeKentanPisteen(pelaaja); IsPaused = true; PrinttaaTekstiJaOdotaInput("You have defeated sadistic and vile creature, Splörts, and freed your friend\nfrom his dungeon. Congratulations!", TallennaPisteetJaVoitaPeli); }
/// <summary> /// Tarkistetaan kumman pelaajan alus on kyseessä. Vain kaksi alusta voi olla olemassa tässä vaiheessa, joten if/else toimii /// </summary> /// <param name="pelaaja">Pelaaja, jonka aluksen elämälaskuri tarkastetaan</param> public void TarkistaPelaaja(Pelaaja pelaaja) { if (pelaaja.Alus.ElamaLaskuri == 0) { pelaaja.Alus.Ase1.Destroy(); pelaaja.Alus.Destroy(); KasitteleRajahdys(pelaaja.Alus); pelaaja.AlusLaskuri.Value -= 1; TarkistaLoppu(pelaaja); } }
/// <summary> /// Päivitetään pelaajan tiedot: luodaan alus, kontrollerit, collisionhandlerit ja näytöt /// </summary> /// <param name="pelaaja">Pelaaja, jota päivitetään</param> private void PaivitaPelaaja(Pelaaja pelaaja) { pelaaja.LuoAlus(this, "Pelaaja", pelaaja.Nimi, pelaaja.Aloitus, pelaaja.Vari); pelaaja.Alus.Image = alukset[pelaaja.AlusKuva]; //AsetaNappaimet(pelaaja, pelaaja.Nappaimet); PaivitaNappaimet(); pelaaja.PoistaNaytot(); pelaaja.LuoNaytot(this); this.AddCollisionHandler(pelaaja.Alus, "Asteroidi", Tormays); this.AddCollisionHandler(pelaaja.Alus, "Pelaaja", Tormays); pelaaja.Alus.Ase1.ProjectileCollision = AmmusOsui1; pelaaja.Alus.Ase2.ProjectileCollision = AmmusOsui2; }
public void GetPositionTest() { List <string> lista = new List <string>(); Pelaaja pelaaja = new Pelaaja("Teemu", "Selänne", "anaheim ducks", 3000000); lista.Add(pelaaja.AllData()); pelaaja = new Pelaaja("Patrik", "Laine", "Winnipeg Jets", 1000000); lista.Add(pelaaja.AllData()); Assert.AreEqual(1, pelaaja.GetPosition(lista, lista.Count, "Patrik Laine")); }
static void TestaaJoukkue() { Joukkue joukkue = new Joukkue { Nimi = "JYP", Kotikaupunki = "Helsinki" }; Pelaaja[] p = new Pelaaja[6]; int m = 0; while (true) { Console.WriteLine("Kirjoita valinta 0(Jos haluat mennä pois), 1(Jos haluat lisätä pelaajan), 2(Jos haluat poistaa pelaajan), 3(Jos haluat nähdä pelaajanlista)"); int valinta = Int32.Parse(Console.ReadLine()); if (valinta == 0) { break; } else { if (valinta == 1) { Console.WriteLine("Kirjoita etunimi:"); string etunimi = Console.ReadLine(); Console.WriteLine("Kirjoita sukunimi:"); string sukunimi = Console.ReadLine(); Console.WriteLine("Kirjoita ika:"); int ika = Int32.Parse(Console.ReadLine()); Console.WriteLine("Kirjoita numero:"); int numero = Int32.Parse(Console.ReadLine()); Console.WriteLine("Kirjoita rooli:"); string rooli = Console.ReadLine(); p[m] = new Pelaaja { Etunimi = etunimi, Sukunimi = sukunimi, Ika = ika, Numero = numero, Rooli = rooli }; joukkue.LisaaPelaaja(p[m]); m++; } else if (valinta == 2) { Console.WriteLine("Kirjoita pelaajan numero: "); int tmp = Int32.Parse(Console.ReadLine()); joukkue.PoistaaPelaaja(tmp); Console.WriteLine(joukkue.ToString()); } else if (valinta == 3) { Console.WriteLine(joukkue.ToString()); } } } }
public static void VertaaPelaaja(string uusinimi, int pisteet, int PeliID) { int ID; try { List <Pelaaja> Pelaajat = new List <Pelaaja>(); //kerrotaan että yhteystiedot löytyvät app.configista string cs = ConfigurationManager.ConnectionStrings["cs"].ConnectionString; //Sql-kysely string sql = "SELECT PelaajaID,Nick FROM Pelaaja"; //luodaan yhteys ja avataan yhteys tietokantaan using (MySqlConnection conn = new MySqlConnection(cs))//using kertoo, että muuttuja conn on käytettävissä vain seuraavassa lohkossa. Muistinhallinnan kannalta näin on parempi, sillä yhteydet kuluttavat paljon muistia. { conn.Open(); //suoritetaan kysely tietokantaan MySqlCommand cmd = new MySqlCommand(sql, conn); using (MySqlDataReader rdr = cmd.ExecuteReader()) { //käydään tulokset läpi ja muutetaan kukin tietue(rivi) Student-olioksi while (rdr.Read()) { Pelaaja s = new Pelaaja(); s.PelaajaID = rdr.GetInt32(0); s.PelaajaNimi = rdr.GetString(1); Pelaajat.Add(s); } } if (Pelaajat.Exists(x => x.PelaajaNimi == uusinimi)) { int index = Pelaajat.FindIndex(a => a.PelaajaNimi == uusinimi); ID = Pelaajat.ElementAt(index).PelaajaID; Addpisteet(pisteet, PeliID, ID); } else { AddPelaaja(uusinimi); VertaaPelaaja(uusinimi, pisteet, PeliID); } } } catch (Exception db) { MessageBox.Show(db.Message); } }
/// <summary> /// Kun painetaan ampumisnappia, pelaaja ampuu halutun ammuksen /// </summary> /// <param name="p">pelaaja</param> public void PelaajaAmmu(Pelaaja p) { if (p.AmpumisAjastin.Enabled || p.ShouldDie()) { return; } else { Ammus ammus = Peli.AmmusLuoti1Malli(); ammus.Speed = 700; ammus.Position = p.Position; ammus.Ampuja = this; p.Shoot(p.pelaajanSuunta, ammus); //p.AmpumisAjastin.Reset(); p.AmpumisAjastin.Start(1); } }
public static void PyydaSiirtoa(Pelaaja pelaaja) { bool onnistuiko; do { Console.WriteLine("{0}, tee siirto muodossa 'x,y'.", pelaaja.Tunnus); int[] siirto = Siirto(Console.ReadLine()); onnistuiko = TeeSiirto(siirto, pelaaja); } while (onnistuiko == false); Console.Clear(); PiirraPelikentta(); if (Voitontarkistaja(pelaaja.Numero) == true) { Console.WriteLine("{0} voitti pelin!", pelaaja.Tunnus); System.Environment.Exit(0); } ; }
public static bool TeeSiirto(int[] siirto, Pelaaja pelaaja) { int koordinaatti = (siirto[1]) * 3 + (siirto[0]); if (koordinaatti < 0 || koordinaatti > pelikentta.Length) { return(false); } if (pelikentta[koordinaatti] == null) { pelikentta[koordinaatti] = pelaaja.Numero; return(true); } else { Console.WriteLine("Paikka varattu!"); return(false); } }
/// <summary> /// Kun painetaan pomminheittonappia, pelaaja heittää pommin. /// </summary> /// <param name="p">pelaaja</param> public void PelaajaHeitaKranaatti(Pelaaja p) { if (p.KranaattiAjastin.Enabled || p.ShouldDie()) { return; } else { if (p.Tavarat.KaytaTavara((int)TavaraTyypit.Pommit)) { Ammus ammus = Peli.AmmusPommi1Malli(); ammus.Position = p.Position; ammus.Ampuja = this; //ammus.Rajahdys.AddShockwaveHandler("pelaaja", Harjoittelutyö.PaineaaltoOsuu); p.Shoot(p.pelaajanSuunta, ammus); //p.KranaattiAjastin.Reset(); p.KranaattiAjastin.Start(1); } } }
/// <summary> /// Kun kenttä on menty läpi, laskee pelaajan kentästä saadut pisteet. /// </summary> /// <param name="p">Pelaajan viite</param> public static void LaskeKentanPisteen(Pelaaja p) { //Laske pisteet pelaajan kolikoista, elämistä ja hp:sta Pisteet += 200 * p.Tavarat.TavaranMaara((int)TavaraTyypit.Raha); Pisteet += 400 * p.Tavarat.TavaranMaara((int)TavaraTyypit.Elama); Pisteet += 200 * p.CurrentHp; //Poistaa kaikki kolikot pelaajan inventorista. Ei tarvittava, koska kolikot eivät tallennu pelaajan tietoihin, jotka ladataan //seuraavassa kentässä. //p.Tavarat.KaytaTavara((int)TavaraTyypit.Raha, (byte)p.Tavarat.TavaranMaara((int)TavaraTyypit.Raha)); //Anna pisteitä kentän suorituksen nopeudesta: const int maxPisteetAjasta = 2000; //Maksimipisteet, jotka pelaaja voi saada nopeasta suorituksesta. const int minPisteetAjasta = 1000; //Minimipisteet, jotka pelaaja saa joka kentän suorituksesta. const int maxAikavaatimus = 600; //Aika sekuntteina, jonka jälkeen pelaaja saa vain minimipisteet kentästä. Pisteet += Math.Max((int)(maxPisteetAjasta - kenttaAjastin.CurrentTime * (maxPisteetAjasta / maxAikavaatimus)), minPisteetAjasta); kenttaAjastin.Stop(); //Kentän pisteet tallennetaan "vanhatPisteet" muuttujaan, jolloin niitä ei voi enää ottaa pois pelaajalta. vanhatPisteet = Pisteet; }
public void ParseDataTest() { List <string> lista = new List <string>(); Pelaaja pelaaja = new Pelaaja("Teemu", "Selänne", "anaheimDucks", 3000000); lista.Add(pelaaja.AllData()); pelaaja = new Pelaaja("Patrik", "Laine", "WinnipegJets", 1000000); lista.Add(pelaaja.AllData()); pelaaja.ParseData(lista, 0); Assert.IsInstanceOfType(pelaaja.Etunimi, typeof(string)); Assert.IsInstanceOfType(pelaaja.Sukunimi, typeof(string)); Assert.IsInstanceOfType(pelaaja.Seura, typeof(string)); Assert.IsInstanceOfType(pelaaja.Siirtohinta, typeof(int)); Assert.AreEqual("Teemu", pelaaja.Etunimi); Assert.AreEqual("Selänne", pelaaja.Sukunimi); Assert.AreEqual("anaheimDucks", pelaaja.Seura); Assert.AreEqual(3000000, pelaaja.Siirtohinta); }
void AloitaPeli() { ClearAll(); ruudut.SetTileMethod('#', LuoSeina); ruudut.SetTileMethod('-', LuoSeina); ruudut.Execute(tileWidth, tileHeight); //pistelaskuri peliin PisteLaskuri(); pisteLaskuri.Value = 30; //rynkky rynkky = new AssaultRifle(40, 30); rynkky.Ammo.Value = pisteLaskuri.Value; rynkky.ProjectileCollision = Osuma; //laser /*laser = new LaserGun(30, 10); * laser.Ammo.Value = 20; * laser.ProjectileCollision = Osuma;*/ //pelaaja pelaaja1 = new Pelaaja(40, 80); pelaaja1.CanRotate = false; HpLaskuri(); hpLaskuri.Value = pelaaja1.Elamat; pelaaja1.Image = HahmonKuva; pelaaja1.Tag = "Pelaaja"; Add(pelaaja1); pelaaja1.Add(rynkky); Level.Background.Image = MaanKuva; Level.Background.ScaleToLevelFull(); //näppäimet Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -100), pelaaja1); Keyboard.Listen(Key.Down, ButtonState.Released, Pysayta, null, new Vector(0, -100)); Keyboard.Listen(Key.Down, ButtonState.Pressed, KaannaAse, "Käännetään asetta pelaajanmukana", Angle.FromDegrees(-90), rynkky); Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 100), pelaaja1); Keyboard.Listen(Key.Up, ButtonState.Released, Pysayta, null, new Vector(0, 100)); Keyboard.Listen(Key.Up, ButtonState.Pressed, KaannaAse, "Käännetään asetta pelaajanmukana", Angle.FromDegrees(90), rynkky); Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-100, 0), pelaaja1); Keyboard.Listen(Key.Left, ButtonState.Released, Pysayta, null, new Vector(-100, 0)); Keyboard.Listen(Key.Left, ButtonState.Pressed, KaannaAse, "Käännetään asetta pelaajanmukana", Angle.FromDegrees(180), rynkky); Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, null, new Vector(100, 0), pelaaja1); Keyboard.Listen(Key.Right, ButtonState.Released, Pysayta, null, new Vector(100, 0)); Keyboard.Listen(Key.Right, ButtonState.Pressed, KaannaAse, "Käännetään asetta pelaajanmukana", Angle.FromDegrees(0), rynkky); Keyboard.Listen(Key.Space, ButtonState.Down, Ammu, "Ammu", rynkky, pelaaja1); Keyboard.Listen(Key.Q, ButtonState.Pressed, AnnaLaser, "Annetaan laserGun", pelaaja1); PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); Kierros(); }
void AnnaLaser(Pelaaja pelaaja) { pelaaja.Add(laser); }
void Ammu(AssaultRifle rifle, Pelaaja pelaaja) { PhysicsObject ammus = rifle.Shoot(); }