From 04bdca8b93732e64f62b1ed1b00c3da9ff61b144 Mon Sep 17 00:00:00 2001 From: Kopperoinen Paulus <paulus.j.kopperoinen@student.jyu.fi> Date: Tue, 31 Oct 2023 16:44:47 +0200 Subject: [PATCH] =?UTF-8?q?Tein=20kokonaan=20uuden=20liikkumisj=C3=A4rjest?= =?UTF-8?q?elm=C3=A4n,=20mato=20voi=20viel=C3=A4kin=20j=C3=A4=C3=A4d=C3=A4?= =?UTF-8?q?=20ruutujen=20puoleen=20v=C3=A4liin,=20mutta=20p=C3=A4=C3=A4tin?= =?UTF-8?q?,=20ettei=20minua=20kiinnosta=20se=20ja=20aion=20pit=C3=A4?= =?UTF-8?q?=C3=A4=20liikkumismekanismin=20sillaisenaan,=20tein=20siis=20pe?= =?UTF-8?q?lin=20kokonaan=20uudestaan=20t=C3=A4h=C3=A4n=20vaiheeseen=20ast?= =?UTF-8?q?i.=20Seuraavaksi=20aion=20lis=C3=A4t=C3=A4=20omenat=20ja=20niid?= =?UTF-8?q?en=20uudelleensyntymismekanismin,=20sek=C3=A4=20sen=20j=C3=A4lk?= =?UTF-8?q?een=20madon=20pituuden=20kasvumekanismin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Matopeli/Matopeli/Matopeli.cs | 268 ++++++++++++++++-------------- Matopeli/Matopeli/Matopeli.csproj | 4 + Matopeli/Matopeli/nollaaja.cs | 14 ++ 3 files changed, 160 insertions(+), 126 deletions(-) create mode 100644 Matopeli/Matopeli/nollaaja.cs diff --git a/Matopeli/Matopeli/Matopeli.cs b/Matopeli/Matopeli/Matopeli.cs index 5874291..b958796 100644 --- a/Matopeli/Matopeli/Matopeli.cs +++ b/Matopeli/Matopeli/Matopeli.cs @@ -1,173 +1,189 @@ -using System; using System.Collections.Generic; -using System.Runtime.ExceptionServices; -using System.Xml.Serialization; +using System.Security.Cryptography.X509Certificates; using Jypeli; using Jypeli.Assets; using Jypeli.Controls; -using Jypeli.Effects; using Jypeli.Widgets; - -namespace Matopeli; +namespace matopeli; /// @author Omanimi -/// @version 26.10.2023 +/// @version 30.10.2023 /// <summary> /// /// </summary> - public class Matopeli : PhysicsGame +public class matopeli : PhysicsGame +{ + private Objektit Mato; + public double MatoX; + public double MatoY; + public int SuuntaX; + public int SuuntaY; + + private static readonly Image seinakuva = LoadImage("seina.png"); + private static readonly Image matopaakuva = LoadImage("matopaa.png"); + private readonly Image matokehokuva = LoadImage("matokeho.png"); + private readonly Image omenakuva = LoadImage("omena.png"); + private readonly Image kenttatausta = LoadImage("kenttatausta.png"); + + private bool SuuntaYlos = false; + private bool SuuntaAlas = false; + private bool SuuntaOikea = false; + private bool SuuntaVasen = false; + + public override void Begin() { + // Kirjoita ohjelmakoodisi tähän - private static readonly string[] kentta ={ - "---------------", - "- -", - "- -", - "- -", - "- -", - "- -", - "- m -", - "- -", - "- -", - "- -", - "- -", - "- -", - "- -", - "---------------", - }; - private int seinaleveys= 600 / kentta.Length; - private int seinakorkeus = 600 / kentta.Length; - - private static readonly Image seinakuva = LoadImage("seina.png"); - private static readonly Image matopaakuva = LoadImage("matopaa.png"); - private readonly Image matokehokuva = LoadImage("matokeho.png"); - private readonly Image omenakuva = LoadImage("omena.png"); - private readonly Image kenttatausta = LoadImage("kenttatausta.png"); - - private LiikkuvaMato mato; - private LiikkuvaMato omena; + PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); + Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); + AloitaUusiPeli(); - public readonly IntMeter pisteet = new IntMeter(0); + } + public void AloitaUusiPeli() + { + ClearAll(); + SuuntaAlas = true; + LuoMato(); + Asetaohjaimet(); + LuoAikalaskuri(); + } + private void Asetaohjaimet() + { + Keyboard.Listen(Key.Up, ButtonState.Pressed, VaihdaSuuntaYlos, "Turn upwards"); + Keyboard.Listen(Key.Down, ButtonState.Pressed, VaihdaSuuntaAlas, "Turn downwards"); + Keyboard.Listen(Key.Left, ButtonState.Pressed, VaihdaSuuntaVasen , "Turn left"); + Keyboard.Listen(Key.Right, ButtonState.Pressed, VaihdaSuuntaOikea, "Turn right"); + } + public PhysicsObject LuoMato() + { + Mato = new Objektit(60, 60, new Vector(0,0)); + Mato.Color = Color.Charcoal; + Mato.Position = new Vector(0, 0); + Add(Mato); + Mato.Tag = "mato"; + return Mato; + } - public override void Begin() + private void VaihdaSuuntaYlos() { - ClearAll(); - // Background.Image = LoadImage("kenttatausta"); - //LuoTausta(); - - AloitaUusiPeli(); + + if (SuuntaAlas==true) + { + SuuntaOikea = false; + SuuntaVasen = false; + SuuntaYlos = false; + SuuntaAlas = true; + } + else + { + SuuntaOikea = false; + SuuntaVasen = false; + SuuntaYlos = true; + SuuntaAlas = false; + } } - - public void AloitaUusiPeli() + + private void VaihdaSuuntaAlas() { - // pisteet.Value = 0; - - TileMap seinat = TileMap.FromStringArray(kentta); - seinat.SetTileMethod('-', LuoSeina); - seinat['m'] = LuoMato; - //seinat.SetTileMethod('k',LuoMatokeho); - seinat.Insert(seinaleveys, seinakorkeus); - Asetaohjaimet(); - - seinat.Execute(seinaleveys, seinakorkeus); - LuoOmena(); + if (SuuntaYlos==true) + { + SuuntaOikea = false; + SuuntaVasen = false; + SuuntaYlos = true; + SuuntaAlas = false; + } + else + { + SuuntaOikea = false; + SuuntaVasen = false; + SuuntaYlos = false; + SuuntaAlas = true; + } } - - - - private void Asetaohjaimet() + + private void VaihdaSuuntaOikea() { - Keyboard.Listen(Key.Up, ButtonState.Down, KaannyYlos, "Turn upwards"); - Keyboard.Listen(Key.Down, ButtonState.Down, KaannyAlas, "Turn downwards"); - Keyboard.Listen(Key.Left, ButtonState.Down, KaannyVasen, "Turn left"); - Keyboard.Listen(Key.Right, ButtonState.Down, KaannyOikea, "Turn right"); - } + if (SuuntaVasen == true) + { + + SuuntaOikea = false; + SuuntaVasen = true; + SuuntaYlos = false; + SuuntaAlas = false; + } + else + { + SuuntaOikea = true; + SuuntaVasen = false; + SuuntaYlos = false; + SuuntaAlas = false; + } - private void KaannyYlos() - { - - mato.Velocity = new Vector(0, 150); - mato.Angle = Angle.FromDegrees(90); - } - private void KaannyAlas() - { - - mato.Velocity = new Vector(0, -150); - mato.Angle = Angle.FromDegrees(270); } - private void KaannyVasen() + + private void VaihdaSuuntaVasen() { - - mato.Velocity = new Vector(-150, 0); - mato.Angle = Angle.FromDegrees(180); + if (SuuntaOikea==true) + { + SuuntaOikea = true; + SuuntaVasen = false; + SuuntaYlos = false; + SuuntaAlas = false; + } + else + { + SuuntaOikea = false; + SuuntaVasen = true; + SuuntaYlos = false; + SuuntaAlas = false; + } } - private void KaannyOikea() + private void LuoAikalaskuri() { - - mato.Velocity = new Vector(150, 0); - mato.Angle = Angle.FromDegrees(0); + Timer aikalaskuri = new Timer(); + aikalaskuri.Interval = 0.008; + aikalaskuri.Timeout += LiikutaMatoa; + aikalaskuri.Start(); } - private void LuoSeina(Vector paikka, double leveys, double korkeus) - { - PhysicsObject seina = new PhysicsObject(leveys, korkeus); - seina.Position = paikka; - seina.Image = seinakuva; - seina.Tag = "seina"; - seina.MakeStatic(); - Add(seina); - } - - - - private PhysicsObject LuoMato() + private void LiikutaMatoa() + { + if (SuuntaYlos==true) { - mato = new LiikkuvaMato(seinaleveys, seinakorkeus); - mato.Image = Matopeli.matopaakuva; - mato.Tag = "mato"; - mato.Velocity = new Vector(150, 0); - AddCollisionHandler(mato, "seina", TormaaSeinaan); - AddCollisionHandler(mato, "omena", SyoOmenan); - return mato; - + Mato.Y++; } - - private PhysicsObject LuoOmena() + if (SuuntaAlas==true) { - omena = new LiikkuvaMato(seinaleveys, seinakorkeus); - omena.Image = omenakuva; - omena.Tag = "omena"; - return omena; + Mato.Y--; } - - - private void TormaaSeinaan(IPhysicsObject mato,IPhysicsObject seina) + if (SuuntaOikea==true) { - mato.Velocity = new Vector(0,0); - seina.Velocity = new Vector(0, 0); - + Mato.X++; } - - private void SyoOmenan(IPhysicsObject mato, IPhysicsObject omena) + if (SuuntaVasen==true) { - omena.Destroy(); + Mato.X--; } + } - - - public class LiikkuvaMato : PhysicsObject + private class Objektit : PhysicsObject { - public LiikkuvaMato(double leveys, double korkeus) - : base(leveys, korkeus) + public Objektit(double leveys, double korkeus, Vector paikka) + : base(leveys, korkeus) { Mass = 10000; - IgnoresGravity = true; IsUpdated = true; } - } + } + + + +} + diff --git a/Matopeli/Matopeli/Matopeli.csproj b/Matopeli/Matopeli/Matopeli.csproj index efce696..7fb5906 100644 --- a/Matopeli/Matopeli/Matopeli.csproj +++ b/Matopeli/Matopeli/Matopeli.csproj @@ -47,4 +47,8 @@ </None> </ItemGroup> + <ItemGroup> + <Compile Remove="nollaaja.cs" /> + </ItemGroup> + </Project> diff --git a/Matopeli/Matopeli/nollaaja.cs b/Matopeli/Matopeli/nollaaja.cs new file mode 100644 index 0000000..7d600fc --- /dev/null +++ b/Matopeli/Matopeli/nollaaja.cs @@ -0,0 +1,14 @@ +namespace Matopeli; + + +class nollaaja +{ + public int X { get; set; } + public int Y { get; set; } + public nollaaja() + { + X = 0; + Y = 0; + } + +} \ No newline at end of file -- GitLab