From c4effa1f0f5b3f294958b5a7df79564276ab3d28 Mon Sep 17 00:00:00 2001
From: Lehtinen Anni Henriikka <lehtineah@gmail.com>
Date: Sun, 30 Mar 2025 22:56:18 +0300
Subject: [PATCH] =?UTF-8?q?Kiekkojen=20lis=C3=A4=C3=A4minen=20kent=C3=A4ll?=
 =?UTF-8?q?e=20korjattu,=20Kiekkojen=20ker=C3=A4=C3=A4minen=20(poistaminen?=
 =?UTF-8?q?)=20kent=C3=A4lt=C3=A4=20lis=C3=A4tty?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 Escape/Escape/Escape.cs | 40 +++++++++++++++++++++++++++++-----------
 1 file changed, 29 insertions(+), 11 deletions(-)

diff --git a/Escape/Escape/Escape.cs b/Escape/Escape/Escape.cs
index 2f08d4a..d9acea3 100644
--- a/Escape/Escape/Escape.cs
+++ b/Escape/Escape/Escape.cs
@@ -8,7 +8,7 @@ using Jypeli.Widgets;
 namespace Escape;
 
 /// @author annilehtinen
-/// @version 29.03.2025
+/// @version 30.03.2025 / 2
 /// <summary>
 /// Peli, jossa pelaajaan tavoitteena on vältellä vastustajaa (Barkov) ja kerätä kiekkoja saadakseen pisteitä.
 /// </summary>
@@ -23,9 +23,10 @@ public class Escape : PhysicsGame
         SetControls(player);
 
         PhysicsObject barkov = AddBarkov(this);
-        
         AddCollisionHandler(player, barkov, Tackle);
         
+        AddCollisionHandler(player, "puck", CollectPuck);
+        
         Timer.CreateAndStart(4.0, SpawnPucks);
     }
     
@@ -61,6 +62,7 @@ public class Escape : PhysicsGame
         return player;
     } 
     
+    
     /// <summary>
     /// Lisää "vihollisen" eli Barkovin pelikentälle
     /// </summary>
@@ -76,6 +78,7 @@ public class Escape : PhysicsGame
         return barkov;
     } 
     
+    
     /// <summary>
     /// Törmäyksenkäsittelijä pelaajahahmolle ja Barkoville (kesken)
     /// </summary>
@@ -84,6 +87,18 @@ public class Escape : PhysicsGame
     void Tackle(PhysicsObject player, PhysicsObject barkov)
     {
         MessageDisplay.Add("Taklaus");
+        //Peli päättyy tähän taklaukseen
+    } 
+    
+    
+    /// <summary>
+    /// Pelaaja kerää kiekon pelikentältä
+    /// </summary>
+    /// <param name="player">Pelaajan hahmo</param>
+    /// <param name="puck">Kiekko, joka poistetaan kentältä</param>
+    void CollectPuck(PhysicsObject player, PhysicsObject puck)
+    {
+        puck.Destroy();
     }
     
     
@@ -116,13 +131,16 @@ public class Escape : PhysicsGame
     /// <param name="lifetime">Aika, jonka kiekko on kentällä ennen kuin se katoaa</param>
     void SpawnPucks(int amount, double lifetime)
     {
-        PhysicsObject puck = new PhysicsObject(18, 18);
-        puck.Shape = Shape.Circle;
-        puck.Color = Color.Black;
-        puck.LifetimeLeft = TimeSpan.FromSeconds(lifetime);
-        puck.Position = Level.GetRandomPosition();
-        
-        for (int i = 1; i <= amount; i++) this.Add(puck);
+        for (int i = 1; i <= amount; i++)
+        {
+            PhysicsObject puck = new PhysicsObject(18, 18);
+            puck.Shape = Shape.Circle;                         
+            puck.Color = Color.Black;                          
+            puck.LifetimeLeft = TimeSpan.FromSeconds(lifetime);
+            puck.Position = Level.GetRandomPosition();         
+            puck.Tag = "puck";                                 
+            this.Add(puck);
+        }
     } 
     
     
@@ -133,13 +151,13 @@ public class Escape : PhysicsGame
     void SpawnPucks()
     {
         SpawnPucks(1, 5.0);
-    } 
+    }
     
     
     /// <summary>
     /// Lisätään kentälle haluttu määrä kiekkoja (pelin alkaessa)
     /// </summary>
-    void CreateLevel() //TODO: Kiekkojen lisääminen ei toimi
+    void CreateLevel()
     {
         Surfaces borders = Level.CreateBorders(0.5, true, Color.White);
         SpawnPucks(5, 10.0);
-- 
GitLab