/// <summary> /// Luodaan aliohjelma KaikkiKeratty, joka luo kultahippusateen laskurin saavuttaessa maksimiarvonsa. /// </summary> private void KaikkiKeratty() { ClearAll(); Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); Level.Background.CreateGradient(Color.White, Color.Gold); MessageDisplay.Add("Onnistuit keräämään kaikki lantit jäämättä kiinni verokarhulle! Paina Esc poistuaksesi."); Gravity = new Vector(0, -500); int i = 0; int maara = 2000; while (i < maara) { int sade = RandomGen.NextInt(20, 20); double x = RandomGen.NextDouble(Level.Left + sade, Level.Right - sade); double y = RandomGen.NextDouble(Level.Bottom + sade, Level.Top - sade); Color vari = Color.Gold; PhysicsObject hippu = LuoHippu(x, y, vari, sade); Add(hippu, 1); i++; } }
/// <summary> /// Aliohjelma määrittää, mitä tapahtuu, kun törmäät esteeseen. /// </summary> public void TormaaTasoon(PhysicsObject tormaaja, PhysicsObject kohde) { MessageDisplay.Add("Törmäsit esteeseen, joten hävisit pelin!"); Keyboard.Disable(Key.Up); pelaaja1.Destroy(); }
/// <summary> /// Kerätessä viisi karkkia saa yhden elämän lisää. /// </summary> private void ViisiKarkkia() { elamaLaskuri.Value += 1; karkkiLaskuri.Value = 0; karkkiAani.Play(); MessageDisplay.Add("Sait yhden elämän lisää!"); }
void KuunteleLiiketta2(AnalogState hiirenTila) { int kohtausNumero = 0; foreach (PhysicsObject sana in tuoteLista) { //string apu = sana.ToString(); if (Mouse.IsCursorOn(sana)) { kohtausNumero = tuoteLista.IndexOf(sana); break; } } switch (kohtausNumero) { case 0: elamansuola.Position = Mouse.PositionOnWorld; MessageDisplay.Add("Käytä ensi kerralla Himalajan suolaa"); MessageDisplay.MaxMessageCount = 0; break; case 1: hksininen.Position = Mouse.PositionOnWorld; MessageDisplay.Add("Vähä kyrsää... Brus suomalaista!"); MessageDisplay.MaxMessageCount = 0; break; } }
void TormaaEsteeseen(PhysicsObject hahmo, PhysicsObject Este) { /// To do: "play again" nappula maaliAani.Play(); MessageDisplay.Add("Kuolit!!!"); pelaaja1.Destroy(); }
void A() { Gravity = new Vector(0, -1000); LuoKentta(); LisaaNappaimet(); pistelaskuri.MaxValue = 1; pistelaskuri.UpperLimit += kaikki; Camera.Follow(pelaaja1); Camera.ZoomFactor = 1.2; Camera.StayInLevel = true; l = new Label("Vakiofontti"); l.Font = new Font(25); //l.Font.SetFontSize(50); //l.TextScale = new Vector(0.5, 0.5); l.Y = 170; Add(l); Label l2 = new Label("Vakiofontti"); l2.Font = new Font(25, true); l2.Y = 150; Add(l2); MessageDisplay.Add("Kissa"); Explosion e = new Explosion(200); //Add(e); }
private void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti) { maaliAani.Play(); MessageDisplay.Add("Keräsit tähden!"); tahti.Destroy(); pistelaskuri.Value++; }
/// <summary> /// Lopettaa pelin ja jos pelaaja pääsee top-listalle, antaa kirjoittaa pelaajan nimen /// Näyttää toplistan ja antaa ilmoituksen mahdollisuudesta aloittaa uuden pelin /// </summary> void PeliLoppui() { ScoreList topLista = new ScoreList(LISTANPITUUS, false, LISTALLEMINPISTEET); topLista = DataStorage.TryLoad <ScoreList>(topLista, "pisteet.xml"); HighScoreWindow topIkkuna = new HighScoreWindow( "Parhaat pisteet", "Onneksi olkoon, pääsit listalle pisteillä %p", topLista, Suurempi() ); Add(topIkkuna); topIkkuna.Closed += delegate(Window ikkuna) { DataStorage.Save <ScoreList>(topLista, "pisteet.xml"); }; topIkkuna.Closed += delegate(Window ikkuna) { MessageDisplay.Add("Aloita uusi peli"); }; }
void Luoaalto() { int susia = 5 + aalto * 3; Timer ajastin = new Timer(); ajastin.Interval = 1.5; ajastin.Timeout += delegate { if (susia > 0) { susia--; MessageDisplay.Add("Uusi susi energiamäärällä: " + 3 * (aalto / 2.0)); LuoSusi(3 * (aalto / 2.0)); } else { ajastin.Stop(); MessageDisplay.Add("Aalto loppui, seuraava 10s kuluttua!"); aalto++; Timer.SingleShot(10, Luoaalto); } }; ajastin.Start(); }
/// <summary> /// Luodaan aliohjelma TormaaLanttiin, joka aiheuttaa aaniiefektin, lisaa nayttoon viestin seka kasvattaa pistelaskurin arvoa. /// </summary> /// <param name="hahmo">Hahmo, joka osuu lanttiin</param> /// <param name="lantti">Lantti, johon hahmo osuu</param> private void TormaaLanttiin(PhysicsObject hahmo, PhysicsObject lantti) { maaliAani.Play(); MessageDisplay.Add("Röhröh sain lantin!"); pisteLaskuri.Value += 1; lantti.Destroy(); }
/// <summary> /// Aliohjelma määrittää, mitä tapahtuu, kun törmäät maaliin. /// </summary> public void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti) { maaliAani.Play(); MessageDisplay.Add("Löysit kypsän kiivin!"); tahti.Destroy(); pisteLaskuri.Value += 1; }
void TormaaTahteen3(PhysicsObject hahmo, PhysicsObject tahti3) { maaliAani.Play(); MessageDisplay.Add("Sateenkaari Tauti D:"); laskuri.Value -= 5; elamaLaskuri.Value -= 5; tahti3.Destroy(); }
void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti) { maaliAani.Play(); MessageDisplay.Add("SAIT ELÄMÄN :D"); laskuri.Value += 1; elamaLaskuri.Value += 1; tahti.Destroy(); }
/// <summary> /// Pelin loppumisen jälkeen kentältä katoaa kaikki ja 4 sekuntin kuluttua peli alkaa alusta. /// </summary> /// <param name="viesti">Viestii päättyikö peli voittoon vai häviöön</param> private void LoppuTulos(String viesti) { MessageDisplay.Add(viesti); Gravity = Vector.Zero; StopAll(); Keyboard.Disable(Key.Right); Keyboard.Disable(Key.Left); Timer.SingleShot(3, Begin); }
/// <summary> /// Lopettaa pelin, kun ajastin pääsee nollaan. /// </summary> public void AikaLoppui() { alaspainLaskuri.Value -= 0.1; if (alaspainLaskuri.Value <= 0.0) { MessageDisplay.Add("Aika Loppui"); GameOver("Aika loppui. Uusi peli?"); } }
void TormaaTahteen2(PhysicsObject hahmo, PhysicsObject tahti2) { rajahdys.AddEffect(hahmo.X, hahmo.Y, 50); maaliAani.Play(); MessageDisplay.Add("Otit Osuman D:"); laskuri.Value -= 1; elamaLaskuri.Value -= 3; tahti2.Destroy(); }
/// <summary> /// Tarkoituksena olisi tulostaa hetkellisiä korkeuksia. /// </summary> private void OnkoKorkeus() { if (saavutettuYhteiskorkeus % 100 == 0) { if (MessageDisplay.IsAddedToGame == false) { MessageDisplay.Add(Convert.ToString(saavutettuYhteiskorkeus)); } } }
// HIIREN KUUNTELU ELI MITÄ TAPAHTUU KUN VASEN HIIRI ON PAINETTU POHJAAN void KuunteleLiiketta() { if (Mouse.IsCursorOn(elamansuola)) { elamansuola.Position = Mouse.PositionOnWorld; MessageDisplay.Add("Oos nyt sit varovainen sen kanssa"); MessageDisplay.MaxMessageCount = 0; return; } else if (Mouse.IsCursorOn(hksininen)) { hksininen.Position = Mouse.PositionOnWorld; MessageDisplay.Add("Vähä kyrsää... Brus suomalaista!"); MessageDisplay.MaxMessageCount = 0; return; } else if (Mouse.IsCursorOn(jackdaniels)) { jackdaniels.Position = Mouse.PositionOnWorld; MessageDisplay.Add("Sullahan on ihan kehittynyt maku."); MessageDisplay.MaxMessageCount = 0; return; } else if (Mouse.IsCursorOn(lanttu)) { lanttu.Position = Mouse.PositionOnWorld; MessageDisplay.Add("Vähä kyrsää... Brus suomalaista!"); MessageDisplay.MaxMessageCount = 0; } else if (Mouse.IsCursorOn(mustakitaturska)) { mustakitaturska.Position = Mouse.PositionOnWorld; MessageDisplay.Add("Jaa no varmaan Gordon Ramsy ois ottanu saamaa"); MessageDisplay.MaxMessageCount = 0; } else if (Mouse.IsCursorOn(kebabkastike)) { kebabkastike.Position = Mouse.PositionOnWorld; MessageDisplay.Add("No nyt on kyllä gurmeé mauste"); MessageDisplay.MaxMessageCount = 0; } }
void Assert(bool ehto, string message) { Color color = ehto ? Color.LightGreen : Color.Red; MessageDisplay.Add(message, color); if (!ehto) { throw new TestException(); } }
void AssertNotNull(object obj, string objName) { if (obj != null) { MessageDisplay.Add(objName + " == " + obj.ToString(), Color.LightGreen); } else { MessageDisplay.Add(objName + " == NULL", Color.Red); throw new TestException(); } }
/// <summary> /// Kynän osuessa pelaajaan tapahtuu räjähdys ja pelaajalta lähtee yksi elämä. /// </summary> /// <param name="pelaaja">Pelaaja on olio, jolla peliä pelataan.</param> /// <param name="kyna">Kynä on esine, jota on tarkoitus väistää.</param> private void kynaOsuuPelaajaan(PhysicsObject pelaaja, PhysicsObject kyna) { Explosion rajahdys = new Explosion(kyna.Width * 2); rajahdys.Position = kyna.Position; rajahdys.UseShockWave = false; this.Add(rajahdys); Remove(kyna); elamaLaskuri.Value -= 1; MessageDisplay.Add("Menetit elämän!"); MessageDisplay.MessageTime = new TimeSpan(0, 0, 1); }
void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde) { if (kohde == oikeaReuna) { MessageDisplay.Add("Piste 1. pelaajalle"); pelaajan1Pisteet.Value += 1; } else if (kohde == vasenReuna) { MessageDisplay.Add("Piste 2. pelaajalle"); pelaajan2Pisteet.Value += 1; } }
public void LaskeAlaspain() { aikaMittari.Value -= 0.1; if (aikaMittari.Value <= 0) { MessageDisplay.Add("Aika on päättynyt"); MessageDisplay.TextColor = Color.Red; MessageDisplay.Position = new Vector(Screen.Center.X, Screen.Center.Y); sammakollaOnKarpanen = false; aikaLaskuri.Stop(); PeliLoppui(); } }
/// <summary> /// Pelaajan törmäykset toteutetaan tässä. /// </summary> /// <param name="pelaaja">IPhysicsObject joka törmää.</param> /// <param name="kohde">IPhysicsObject johon törmätään.</param> private void PelaajaTormaa(IPhysicsObject pelaaja, IPhysicsObject kohde) { if (kohde.Tag == "vesi" && (pelaaja.Bottom - kohde.Top) < 10) //if (pelaaja.Bottom < vesi.Y + vesi.Height / 2 + 20 || pelaaja.Y < vedenpinta) { if (pelaaja != null) { pelaaja.Destroy(); //Remove(pelaaja); MessageDisplay.Add(pelaaja.Tag + " kuoli!"); PeliPaattyy(); } } if (kohde.Tag == "kotka") { pelaaja.Destroy(); //Remove(pelaaja); MessageDisplay.Add("Kotka söi " + pelaaja.Tag + ":n!!!"); PeliPaattyy(); } if (kohde.Tag == "tnt") { //if (kohde.Y < 0) return; //Explosion rajahdys = new Explosion(kohde.Width); //rajahdys.Position = kohde.Position; int pMax = 200; Explosion rajahdys = new Explosion(pMax); rajahdys.Position = new Vector(kohde.X, kohde.Y); //Add(rajahdys); rajahdys.Speed = 500.0; rajahdys.Force = 10000; kohde.Destroy(); pelaaja.Hit(new Vector(0, 10000)); } //Kaksinpeliin alla oleva... if (pelaaja.Y < Camera.Y - KENTAN_KORKEUS / 2 && pelaajat.Count > 1) { //Remove(pelaaja); pelaaja.Destroy(); MessageDisplay.Add(pelaaja.Tag + " kuoli!"); PeliPaattyy(); } }
/// <summary> /// Törmätään herkkuun /// </summary> /// <param name="hahmo">Kisu</param> /// <param name="herkku">Kerättävä herkku/powerup</param> public void TormaaHerkkuun(PhysicsObject hahmo, PhysicsObject herkku) { MessageDisplay.Add("Sait lisäboostia!"); pisteLaskuri.Value += 10; PowerUp = true; herkku.Destroy(); Timer powerUp = new Timer(); powerUp.Interval = 6.0; powerUp.Timeout += delegate { Liikuta(kisu, NOPEUS); PowerUp = false; }; powerUp.Start(); }
public override void Begin() { Gravity = new Vector2(0, -0); p1 = new PhysicsObject(5, 50); Add(p1); p2 = new PhysicsObject(100, 50); p2.Body.Velocity = new Jypeli.Vector(-120, 10); p2.Position = new Jypeli.Vector(400, 0); Add(p2); Surfaces ss = Level.CreateBorders(); AddCollisionHandler <PhysicsObject, PhysicsObject>(p1, delegate { MessageDisplay.Add("kissa"); }); }
/// <summary> /// poistetaan liikkuminen ja ilmoitetaan, että peli /// on hävitty /// </summary> /// <param name="tormaaja"></param> /// <param name="kohde"></param> void Tormays(PhysicsObject tormaaja, PhysicsObject kohde) { if (pisteLaskuri.Value >= 10) { MessageDisplay.Add("Voitit!"); } else { MessageDisplay.Add("Hävisit!"); } Keyboard.Disable(Key.Up); lisaaPollo.Stop(); taustaAjastin.Stop(); lisaaKapyja.Stop(); pisteLaskuri.Stop(); }
/// <summary> /// Peli pistetään poikki, tehdään loppu siivoukset ja valmistellaan uuteen peliin. /// Välilyönnillä aloittaa uuden peli. /// </summary> private void PeliPaattyy() { MessageDisplay.Add("Peli päättyi!"); ClearGameObjects(); esineet.Clear(); pelaajat.Clear(); tasot.Clear(); ClearTimers(); ClearControls(); PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); MessageDisplay.Add("Paina välilyöntiä aloittaaksesi uuden pelin"); MessageDisplay.Add("Paina 'M' päästäksesi alkuvalikkoon"); NaytaTopTen(); Keyboard.Listen(Key.Space, ButtonState.Pressed, AloitaUusiPeli, "Aloita uusi peli"); Keyboard.Listen(Key.M, ButtonState.Pressed, Begin, "Alkuvalikko"); }
private void LuoPelaaja(Vector position, double width, double height) { PlatformCharacter hahmo = new PlatformCharacter(40, 80); hahmo.Position = position; Add(hahmo); AssaultRifle ase = new AssaultRifle(60, 15); hahmo.Weapon = ase; //PlatformCharacter apu = new PlatformCharacter( 20, 20, Shape.Circle ); PhysicsObject apu = new PhysicsObject(20, 20, Shape.Circle); FollowerBrain aivot = new FollowerBrain(hahmo); aivot.DistanceClose = 80; aivot.StopWhenTargetClose = true; apu.Brain = aivot; apu.IgnoresGravity = true; Add(apu); AddCollisionHandler(apu, "ammus", delegate(PhysicsObject a, PhysicsObject b) { a.Destroy(); b.Destroy(); }); Label hahmonNimi = new Label(RandomGen.NextLetter(true).ToString() + RandomGen.NextLetter(false).ToString()); hahmonNimi.Bottom = hahmo.Height; hahmo.Add(hahmonNimi); Keyboard.Listen(Key.Space, ButtonState.Down, delegate { var ammus = ase.Shoot(); if (ammus != null) { ammus.Tag = "ammus"; } }, null); Keyboard.Listen(Key.Right, ButtonState.Down, () => hahmo.Walk(200), null); Keyboard.Listen(Key.Left, ButtonState.Down, () => hahmo.Walk(-200), null); Keyboard.Listen(Key.Up, ButtonState.Down, () => hahmo.Jump(600), null); Keyboard.Listen(Key.Enter, ButtonState.Pressed, delegate { if (!apu.IsDestroyed) { MessageDisplay.Add("boop!"); } }, null); }
void SuolanValinnat(int i) { switch (i) { case 0: MessageDisplay.Add("nössösti lisätty"); MessageDisplay.MaxMessageCount = 1; break; case 1: MessageDisplay.Add("Voi veljet"); MessageDisplay.MaxMessageCount = 1; break; case 2: MessageDisplay.Add("nö älä nyt innostu"); MessageDisplay.MaxMessageCount = 1; break; } }