diff --git a/TippuKivet/.idea/.idea.TippuKivet/.idea/vcs.xml b/TippuKivet/.idea/.idea.TippuKivet/.idea/vcs.xml
index 94a25f7f4cb416c083d265558da75d457237d671..288b36b1efb71c411d5c27a1ea6c08e41a7fed46 100644
--- a/TippuKivet/.idea/.idea.TippuKivet/.idea/vcs.xml
+++ b/TippuKivet/.idea/.idea.TippuKivet/.idea/vcs.xml
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
   <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$/.." vcs="Git" />
     <mapping directory="$PROJECT_DIR$" vcs="Git" />
   </component>
 </project>
\ No newline at end of file
diff --git a/TippuKivet/.idea/.idea.TippuKivet/.idea/workspace.xml b/TippuKivet/.idea/.idea.TippuKivet/.idea/workspace.xml
index 8819f18e5fca56ef96074b7ae1b38f0847ee92b9..55058ec3487f69d268dae665dce9d956660b4df5 100644
--- a/TippuKivet/.idea/.idea.TippuKivet/.idea/workspace.xml
+++ b/TippuKivet/.idea/.idea.TippuKivet/.idea/workspace.xml
@@ -14,11 +14,11 @@
     <option name="LAST_RESOLUTION" value="IGNORE" />
   </component>
   <component name="Git.Settings">
-    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
+    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/.." />
   </component>
-  <component name="ProjectColorInfo"><![CDATA[{
-  "associatedIndex": 4
-}]]></component>
+  <component name="ProjectColorInfo">{
+  &quot;associatedIndex&quot;: 4
+}</component>
   <component name="ProjectId" id="2ul5Xh6t4LXvV8I0yFwY1wP6QLU" />
   <component name="ProjectViewState">
     <option name="hideEmptyMiddlePackages" value="true" />
@@ -28,7 +28,8 @@
   "keyToString": {
     ".NET Project.TippuKivet.executor": "Run",
     "RunOnceActivity.ShowReadmeOnStart": "true",
-    "git-widget-placeholder": "master",
+    "XThreadsFramesViewSplitterKey": "0.88839287",
+    "git-widget-placeholder": "main",
     "node.js.detected.package.eslint": "true",
     "node.js.detected.package.tslint": "true",
     "node.js.selected.package.eslint": "(autodetect)",
@@ -67,6 +68,7 @@
       <option name="presentableId" value="Default" />
       <updated>1742810361526</updated>
       <workItem from="1742810362569" duration="8643000" />
+      <workItem from="1742821846343" duration="7405000" />
     </task>
     <servers />
   </component>
diff --git a/TippuKivet/TippuKivet/Content/kivi.png b/TippuKivet/TippuKivet/Content/kivi.png
new file mode 100644
index 0000000000000000000000000000000000000000..c8f1369a7de898b2b06cb370f19ec52a0add6a5c
Binary files /dev/null and b/TippuKivet/TippuKivet/Content/kivi.png differ
diff --git a/TippuKivet/TippuKivet/Content/pelaaja.png b/TippuKivet/TippuKivet/Content/pelaaja.png
new file mode 100644
index 0000000000000000000000000000000000000000..5a2f6b8f65065cd9f0a35b4e4887ee63f60024e6
Binary files /dev/null and b/TippuKivet/TippuKivet/Content/pelaaja.png differ
diff --git a/TippuKivet/TippuKivet/Content/taustakuva.png b/TippuKivet/TippuKivet/Content/taustakuva.png
new file mode 100644
index 0000000000000000000000000000000000000000..8c173054ac6f1b4e0c90a179221e025bf378cafc
Binary files /dev/null and b/TippuKivet/TippuKivet/Content/taustakuva.png differ
diff --git a/TippuKivet/TippuKivet/Content/timantti.png b/TippuKivet/TippuKivet/Content/timantti.png
new file mode 100644
index 0000000000000000000000000000000000000000..62c84fbbc726b5cda597c34ef1c00b830580b6b5
Binary files /dev/null and b/TippuKivet/TippuKivet/Content/timantti.png differ
diff --git a/TippuKivet/TippuKivet/TippuKivet.cs b/TippuKivet/TippuKivet/TippuKivet.cs
index 78f117be66fe5f0547760930173ab38eccc569b1..3e29fe52f25e69e950bc93447e0c1f58d3803074 100644
--- a/TippuKivet/TippuKivet/TippuKivet.cs
+++ b/TippuKivet/TippuKivet/TippuKivet.cs
@@ -4,87 +4,111 @@ namespace TippuKivet
 {
     public class TippuKivet : PhysicsGame
     {
+        // Pelaajan liikkumisnopeudet oikealle ja vasemmalle
         private readonly Vector nopeusOikea = new Vector(800, 0);
         private readonly Vector nopeusVasen = new Vector(-800, 0);
 
+        // Pelin keskeiset muuttujat
         private PhysicsObject pelaaja;
-        private IntMeter pistelaskuri;
-        private Timer ajastinTimantit;
-        private Timer ajastinKivet;
-        private int ohimenneetTimantit;
+        private IntMeter pistelaskuri; // Pisteiden laskuri
+        private Timer ajastinTimantit; // Ajastin timanttien luomiselle
+        private Timer ajastinKivet; // Ajastin kivien luomiselle
+        private int ohimenneetTimantit; // Laskuri, montako timanttia pelaaja on missannut
 
         public override void Begin()
         {
-            SetWindowSize(1024, 768, false);
+            // Asetetaan pelin ikkunan koko
+            SetWindowSize(800, 600, false);
 
+            // Aloitetaan timanttien ja kivien generointi
             ajastinTimantit = Timer.CreateAndStart(1.5, LuoTimantti);
             ajastinKivet = Timer.CreateAndStart(3.0, LuoKivi);
 
+            // Alustetaan pistelaskuri
             pistelaskuri = new IntMeter(0);
             LuoPisteNaytto();
 
+            // Asetetaan painovoima
             Gravity = new Vector(0, -700);
+
+            // Luodaan pelaaja ja pelin kenttä
             pelaaja = LuoPelaaja(0);
             LuoKenttä();
+
+            // Asetetaan ohjaimet
             AsetaOhjaimet();
         }
 
         private void LuoKenttä()
         {
+            // Luodaan näkymätön alalaatta, johon kivet ja timantit voivat osua
             PhysicsObject alalaatta = Level.CreateBottomBorder();
             alalaatta.IsVisible = false;
             AddCollisionHandler(alalaatta, "Kivi", KiviAlalaattaCollide);
             AddCollisionHandler(alalaatta, "Timantti", TimanttiAlalaattaCollide);
-            
+
+            // Asetetaan taustakuva ja taustan väri
+            Level.Background.Image = LoadImage("taustakuva");
             Level.Background.Color = Color.Black;
+
+            // Zoomataan kamera kenttään sopivaksi
             Camera.ZoomToLevel();
         }
 
+        // Luodaan pelaaja-objekti
         private PhysicsObject LuoPelaaja(double x)
         {
-            PhysicsObject pelaaja = LuoObjekti(350, 100, x, -400, Color.Red, "Pelaaja");
-            pelaaja.IgnoresCollisionResponse = true;
-            pelaaja.IgnoresGravity = true;
+            PhysicsObject pelaaja = LuoObjekti(150, 200, x, -300, Color.Red, "Pelaaja");
+            pelaaja.IgnoresCollisionResponse = true; // Törmäykset Pelaajaan ei vaikuta.
+            pelaaja.IgnoresGravity = true; // Painovoima ei vaikuta Pelaajaan
+            pelaaja.Image = LoadImage("pelaaja");
 
+            // Lisätään törmäyskäsittelijät pelaajalle
             AddCollisionHandler(pelaaja, "Kivi", PelaajaKiviCollide);
             AddCollisionHandler(pelaaja, "Timantti", PelaajaTimanttiCollide);
-            
             Add(pelaaja);
             return pelaaja;
         }
 
+        // Luodaan pistelaskuri-näyttö
         private void LuoPisteNaytto()
         {
+  
             Label pisteNaytto = new Label
             {
-                Position = new Vector(-400, 200),
+                Position = new Vector(340, 250),
                 TextColor = Color.Red,
                 Color = Color.White,
-                Size = new Vector(5000, 5000)
+                Size = new Vector(5000, 5000),
+                Title = "Pisteet: ",
             };
             pisteNaytto.BindTo(pistelaskuri);
             Add(pisteNaytto);
         }
 
+        // Luodaan satunnaiseen paikkaan ilmestyvä timantti
         private void LuoTimantti()
         {
+
             double x = RandomGen.NextDouble(Level.Left + 50, Level.Right - 50);
             PhysicsObject timantti = LuoObjekti(60, 60, x, Level.Top + 50, Color.Yellow, "Timantti");
             timantti.AngularVelocity = RandomGen.NextDouble(-5.0, 5.0);
-            AddCollisionHandler(timantti, "Pelaaja", PelaajaTimanttiCollide);
+            timantti.Image = LoadImage("timantti.png");
             Add(timantti);
         }
 
         private void LuoKivi()
         {
+            // Luodaan satunnaiseen paikkaan ilmestyvä kivi
             double x = RandomGen.NextDouble(Level.Left + 20, Level.Right - 20);
             double randomSize = RandomGen.NextDouble(30.0, 120.0);
             PhysicsObject kivi = LuoObjekti(randomSize, randomSize, x, Level.Top + 50, Color.White, "Kivi");
             kivi.Velocity = new Vector(0, -400);
-            AddCollisionHandler(kivi, "Pelaaja", PelaajaKiviCollide);
+            kivi.Image = LoadImage("kivi.png");
             Add(kivi);
         }
         
+        // Aliohjelma objektien luomiseen
         private PhysicsObject LuoObjekti(double width, double height, double x, double y, Color color, string tag)
         {
             return new PhysicsObject(width, height, Shape.Rectangle)
@@ -107,18 +131,21 @@ namespace TippuKivet
                 VoitaPeli();
             }
         }
-
+        
+        // Pelaajan ja kiven törmäyskäsittelijä
         private void PelaajaKiviCollide(PhysicsObject pelaaja, PhysicsObject kivi)
         {
             kivi.Destroy();
             LopetaPeli("Kivi osui sinua päähän, Peli ohi!");
         }
 
+        // Kiven ja alalaatan törmäyskäsittelijä
         private void KiviAlalaattaCollide(PhysicsObject alalaatta, PhysicsObject kivi)
         {
             kivi.Destroy();
         }
-
+        
+        // Timantin ja alalaatan törmäyskäsittelijä
         private void TimanttiAlalaattaCollide(PhysicsObject alalaatta, PhysicsObject timantti)
         {
             timantti.Destroy();
@@ -129,9 +156,11 @@ namespace TippuKivet
                 LopetaPeli("Et ollut tarpeeksi tehokas!");
             }
         }
-
+        
+        // Pelaajan koko pienenee timantin keräämisen jälkeen
         private void KutistaPelaaja()
         {
+
             const double shrinkFactor = 0.9;
             const double minSize = 10.0;
 
@@ -142,37 +171,41 @@ namespace TippuKivet
             }
         }
 
+        // Peli päättyy voittoon, jos pelaaja kerää tarpeeksi pisteitä
         private void VoitaPeli()
         {
             MessageDisplay.Add("Olet TippuKiviLuolan suvereeni Päällikkö!");
             ajastinTimantit.Stop();
             ajastinKivet.Stop();
             Timer.SingleShot(6, Exit);
+            Pause();
         }
-
+        
+        // Peli päättyy häviöön, jos pelaaja osuu kiveen tai missaa liikaa timantteja
         private void LopetaPeli(string viesti)
         {
             MessageDisplay.Add(viesti);
             ajastinTimantit.Stop();
             ajastinKivet.Stop();
             Timer.SingleShot(7, Exit);
+            Pause();
         }
-
+        
+        // Määritellään pelin näppäimet, pelaajan liike, pause ja ESC.
         private void AsetaOhjaimet()
         {
-            Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Liikuta pelaajaa vasemmalle", pelaaja, nopeusVasen);
-            Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero);
-            Keyboard.Listen(Key.D, ButtonState.Down, AsetaNopeus, "Liikuta pelaajaa oikealle", pelaaja, nopeusOikea);
-            Keyboard.Listen(Key.D, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero);
-            Keyboard.Listen(Key.Left, ButtonState.Down, AsetaNopeus, "Liikuta pelaajaa vasemmalle nuolinäppäimellä", pelaaja, nopeusVasen);
+
+            Keyboard.Listen(Key.Left, ButtonState.Down, AsetaNopeus, "Liikuta pelaajaa vasemmalle", pelaaja, nopeusVasen);
             Keyboard.Listen(Key.Left, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero);
-            Keyboard.Listen(Key.Right, ButtonState.Down, AsetaNopeus, "Liikuta pelaajaa oikealle nuolinäppäimellä", pelaaja, nopeusOikea);
+            Keyboard.Listen(Key.Right, ButtonState.Down, AsetaNopeus, "Liikuta pelaajaa oikealle", pelaaja, nopeusOikea);
             Keyboard.Listen(Key.Right, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero);
             Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
+            Keyboard.Listen(Key.P, ButtonState.Pressed, Pause, "Pysäyttää pelin");
         }
 
         private void AsetaNopeus(PhysicsObject pelaaja, Vector nopeus)
         {
+            // Estetään pelaajaa menemästä kentän ulkopuolelle
             if ((pelaaja.X + pelaaja.Width / 2 >= Level.Right && nopeus.X > 0) ||
                 (pelaaja.X - pelaaja.Width / 2 <= Level.Left && nopeus.X < 0))
             {
@@ -183,7 +216,5 @@ namespace TippuKivet
                 pelaaja.Velocity = nopeus;
             }
         }
-
-
     }
 }
diff --git a/TippuKivet/TippuKivet/TippuKivet.csproj b/TippuKivet/TippuKivet/TippuKivet.csproj
index d164748ef3ffb530b112a04baa4bad2904c8c70d..c1b0336c41f50140deaf20e82ce3aaf7db18ce25 100644
--- a/TippuKivet/TippuKivet/TippuKivet.csproj
+++ b/TippuKivet/TippuKivet/TippuKivet.csproj
@@ -10,4 +10,19 @@
         <PackageReference Include="Jypeli.FarseerPhysics.NET" Version="2.*"/>
     </ItemGroup>
 
+    <ItemGroup>
+      <None Update="Content\kivi.png">
+        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      </None>
+      <None Update="Content\taustakuva.png">
+        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      </None>
+      <None Update="Content\timantti.png">
+        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      </None>
+      <None Update="Content\pelaaja.png">
+        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+      </None>
+    </ItemGroup>
+
 </Project>