From bfbdbc4d9847b6ff248737176f8f9ddcb4f3f5ae Mon Sep 17 00:00:00 2001 From: Salonen Leo Sakari <leo.s.salonen@student.jyu.fi> Date: Fri, 21 Feb 2025 14:26:30 +0200 Subject: [PATCH] Tehtiin kaikkee --- .../pomppu possu/Megaporkkanat.cs" | 30 +++++++++ "peli/harkkaty\303\266/pomppu possu/Tasot.cs" | 12 ++++ .../pomppu possu/pomppu possu.cs" | 65 ++++++++++++++++++- 3 files changed, 104 insertions(+), 3 deletions(-) create mode 100644 "peli/harkkaty\303\266/pomppu possu/Megaporkkanat.cs" create mode 100644 "peli/harkkaty\303\266/pomppu possu/Tasot.cs" diff --git "a/peli/harkkaty\303\266/pomppu possu/Megaporkkanat.cs" "b/peli/harkkaty\303\266/pomppu possu/Megaporkkanat.cs" new file mode 100644 index 0000000..13da6fc --- /dev/null +++ "b/peli/harkkaty\303\266/pomppu possu/Megaporkkanat.cs" @@ -0,0 +1,30 @@ +namespace pomppu_possu; +using Jypeli; + +public class Megaporkkanat : PhysicsObject +{ + private Color[] _varit; // Yksityinen oliomuuttuja + private int _osumat; + public Megaporkkanat(double leveys, double korkeus, Color[] varit) : base(leveys, korkeus) + { + _varit = varit; + _osumat = 0; + Color = varit[0]; + } + + public void OtaVastaanOsuma() + { + _osumat++; + if (_osumat == 1) + { + TuhoaPalikka(); + } + else Color = _varit[_osumat]; + + } + + public virtual void TuhoaPalikka() + { + this.Destroy(); + } +} \ No newline at end of file diff --git "a/peli/harkkaty\303\266/pomppu possu/Tasot.cs" "b/peli/harkkaty\303\266/pomppu possu/Tasot.cs" new file mode 100644 index 0000000..b81e197 --- /dev/null +++ "b/peli/harkkaty\303\266/pomppu possu/Tasot.cs" @@ -0,0 +1,12 @@ +namespace pomppu_possu; +using Jypeli; + +public class Tasot : Megaporkkanat +{ + public Tasot(double leveys, double korkeus) + : base(leveys, korkeus,new Color[] { Jypeli.Color.Pink, Jypeli.Color.SeaGreen, Jypeli.Color.Black }) + { + + } + +} \ No newline at end of file diff --git "a/peli/harkkaty\303\266/pomppu possu/pomppu possu.cs" "b/peli/harkkaty\303\266/pomppu possu/pomppu possu.cs" index d00d68e..379c116 100644 --- "a/peli/harkkaty\303\266/pomppu possu/pomppu possu.cs" +++ "b/peli/harkkaty\303\266/pomppu possu/pomppu possu.cs" @@ -15,11 +15,70 @@ namespace pomppu_possu; public class pomppu_possu : PhysicsGame { public override void Begin() - { - // Pomppu possun megamaailma + {Level.Size = new Vector(1920, 1080); + SetWindowSize(1920, 1080); + CenterWindow(); + Level.CreateBorders(); + Level.Background.Color = Color.SpringGreen; + + PhysicsObject pomppuPossu = new PhysicsObject(30, 80, Shape.Rectangle); + Add(pomppuPossu); + + Keyboard.Listen(Key.Up, ButtonState.Down, Liikuta, "Liikuttaa pelaajaa ylös", pomppuPossu, new Vector(0,1000)); + Keyboard.Listen(Key.Down, ButtonState.Down, Liikuta, "Liikuttaa pelaajaa alas", pomppuPossu, new Vector(0,-1000)); + Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikuttaa pelaajaa vasemmalle", pomppuPossu, new Vector(-1000,0)); + Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikuttaa pelaajaa oikealle", pomppuPossu, new Vector(1000,0)); - PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); + for (int i = 0; i < 20; i++) + { + Color[] varit = { Color.Red, Color.Yellow, Color.Green }; + Megaporkkanat pisteet = new Megaporkkanat(50, 50, varit); + pisteet.Position = RandomGen.NextVector(Level.BoundingRect); + AddCollisionHandler<PhysicsObject, Megaporkkanat>(pomppuPossu, pisteet, TormattiinEsineeseen); + Add(pisteet); + } + + + + for (int i = 0; i < 10; i++) + { + Color[] varit = { Color.Black, Color.White }; + Megaporkkanat ympyra = new Megaporkkanat(60, 60, varit); + ympyra.Shape = Shape.Circle; + ympyra.Position = RandomGen.NextVector(Level.BoundingRect); + AddCollisionHandler<PhysicsObject, Megaporkkanat>(pomppuPossu, ympyra, TormattiinEsineeseen); + Add(ympyra); + } + + for (int i = 0; i < 5; i++) + { + Tasot paikallaan = new Tasot(150, 20); + paikallaan.MakeStatic(); + paikallaan.Position = RandomGen.NextVector(Level.BoundingRect); + Add(paikallaan); + } + + Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); } + + public void TormattiinEsineeseen(PhysicsObject tormaaja, Megaporkkanat kohde) + { + kohde.OtaVastaanOsuma(); + } + + /// <summary> + /// Liikuttaa fysiikkaoliota. + /// </summary> + /// <param name="liikuteltava">Liikutettava</param> + /// <param name="suunta">Suunta</param> + public void Liikuta(PhysicsObject liikuteltava, Vector suunta) + { + liikuteltava.Push(suunta); + } + // Pomppu possun megamaailma + + } + -- GitLab