From 53da685c07b5b29792162049a74d837bb24e9083 Mon Sep 17 00:00:00 2001 From: Kopperoinen Paulus <paulus.j.kopperoinen@student.jyu.fi> Date: Thu, 2 Nov 2023 16:21:34 +0200 Subject: [PATCH] =?UTF-8?q?Peli=20alkaa=20olemaan=20jo=20loppusuoralla,=20?= =?UTF-8?q?mato=20liikkuu=20aikalailla=20niinkuin=20pit=C3=A4isi=20ja=20py?= =?UTF-8?q?s=C3=A4htyy=20jos=20se=20t=C3=B6rm=C3=A4=C3=A4.=20Omenat=20voiv?= =?UTF-8?q?at=20synty=C3=A4=20viel=C3=A4=20ruutujen=20puoleenv=C3=A4liin,?= =?UTF-8?q?=20mutta=20en=20tied=C3=A4=20haittaako=20se=20oikeastaan.=20Seu?= =?UTF-8?q?raavaksi=20pit=C3=A4isi=20saada=20uuden=20pelin=20aloittaminen?= =?UTF-8?q?=20toimimaan,=20jos=20mato=20kuolee.=20Lis=C3=A4sin=20my=C3=B6s?= =?UTF-8?q?=20pistelaskurin=20peliin.=20Ajattelin,=20ett=C3=A4=20voisi=20e?= =?UTF-8?q?hk=C3=A4=20luoda=20my=C3=B6s=20kent=C3=A4lle=20pohjav=C3=A4rit,?= =?UTF-8?q?=20jos=20jaksaa.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Matopeli/Matopeli/Matopeli.cs | 50 ++++++++++++++++++++++++++++------- 1 file changed, 40 insertions(+), 10 deletions(-) diff --git a/Matopeli/Matopeli/Matopeli.cs b/Matopeli/Matopeli/Matopeli.cs index e06f8bd..21c0181 100644 --- a/Matopeli/Matopeli/Matopeli.cs +++ b/Matopeli/Matopeli/Matopeli.cs @@ -18,11 +18,11 @@ public class matopeli : PhysicsGame { private static readonly string[] tasonkuva = { "#####################", + "#o #", "# #", "# #", "# #", "# #", - "# o #", "# #", "# #", "# #", @@ -39,6 +39,7 @@ public class matopeli : PhysicsGame private Objektit Mato; private Objektit Omena; private Objektit MatoMuu; + private Timer aikalaskuri; public List<Vector> MatoSijainti = new List<Vector>(); public List<PhysicsObject> MatoKeho = new List<PhysicsObject>(); @@ -59,6 +60,8 @@ public class matopeli : PhysicsGame private bool MatoLiikkunut = true; + private bool GameOver = false; + private bool OmenaKentalla = true; public override void Begin() { @@ -90,13 +93,22 @@ public class matopeli : PhysicsGame Keyboard.Listen(Key.Left, ButtonState.Pressed, VaihdaSuuntaVasen , "Turn left"); Keyboard.Listen(Key.Right, ButtonState.Pressed, VaihdaSuuntaOikea, "Turn right"); } + + private void MatoKuolee() + { + GameOver = true; + } private PhysicsObject LuoMato() { Mato = new Objektit(leveys, korkeus); Mato.Image = matopaakuva; Add(Mato); Mato.Tag = "mato"; + AddCollisionHandler(Mato, "omena", delegate(IPhysicsObject Mato, IPhysicsObject Omena) {MatoSyoOmenan(); }); + AddCollisionHandler(Mato, "seina", delegate(IPhysicsObject Mato, IPhysicsObject seina) {MatoKuolee(); }); + AddCollisionHandler(Mato, "matokeho", delegate(IPhysicsObject Mato, IPhysicsObject matokeho) {MatoKuolee(); }); + return Mato; } @@ -148,7 +160,7 @@ public class matopeli : PhysicsGame } private PhysicsObject LuoSeina() { - PhysicsObject Seina = PhysicsObject.CreateStaticObject(leveys, korkeus); + PhysicsObject Seina = new PhysicsObject(leveys, korkeus); Seina.Color = Color.Green; Seina.Image = seinakuva; Seina.Tag = "seina"; @@ -258,33 +270,51 @@ public class matopeli : PhysicsGame { Timer aikalaskuri = new Timer(); aikalaskuri.Interval = 0.1; - aikalaskuri.Timeout += PaivitaKentta; aikalaskuri.Start(); + aikalaskuri.Timeout += PaivitaKentta; } /// <summary> /// Kun ajastimesta loppuu aika, siirtyy peli tähän funktioon, jonka tarkoituksena on hahmottaa, mitä kaikkea pelissä on tapahtunut ja miten siihen tulee reagoida. - /// + /// + /// GameOver tarkistaa, että onko mato kuollut /// </summary> private void PaivitaKentta() { + + if (GameOver == true) + { + PaataPeli(); + } + if (MatoLiikkunut == false) { return; } + if (OmenaKentalla == false) { LuoMatoKeho(); LuoOmena(); } - MatoSijainti.Add(new Vector(Mato.X,Mato.Y)); - LiikutaMatoa(); - LiikutaKehoa(); - MatoSijainti.Add(new Vector(Mato.X,Mato.Y)); + if (GameOver == false) + { + MatoSijainti.Add(new Vector(Mato.X,Mato.Y)); + LiikutaMatoa(); + LiikutaKehoa(); + MatoSijainti.Add(new Vector(Mato.X,Mato.Y)); + } } - + /// <summary> + /// tehdään ohjelma, joka päättää pelin. + /// </summary> + private void PaataPeli() + { + + } + private void LiikutaMatoa() { MatoLiikkunut = false; @@ -343,7 +373,7 @@ public class matopeli : PhysicsGame public Objektit(double leveys, double korkeus) : base(leveys, korkeus) { - Mass = 0; + Mass = 1000; IsUpdated = true; } } -- GitLab