diff --git a/Matopeli/Matopeli/Matopeli.cs b/Matopeli/Matopeli/Matopeli.cs index 5874291e99201d614f14f82389ff01dcff623bac..b958796ba9477c8c4cee35882dad5e77225dc8b1 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 efce696cf2a5d1771ef75b10618cac1f7e942ae2..7fb590654d2a22d984bb755559c459e20a3885ce 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 0000000000000000000000000000000000000000..7d600fc9c3af7e4bfca0bcfe8a47ef8aead40b13 --- /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