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