diff --git a/Merirosvo-peli/Merirosvo-peli/Merirosvo-peli.cs b/Merirosvo-peli/Merirosvo-peli/Merirosvo-peli.cs index bb6f706a09b4324b208b936ac131cf6f3824c7a6..e962df1e4bb2061ed6b2cb2e644d80eae22b81fc 100644 --- a/Merirosvo-peli/Merirosvo-peli/Merirosvo-peli.cs +++ b/Merirosvo-peli/Merirosvo-peli/Merirosvo-peli.cs @@ -13,7 +13,7 @@ public class Merirosvo_peli : PhysicsGame private const double PALLON_KOKO = 50; private const int PISTEEN_ARVO = 1; private const double KANUUNANKUULAN_TODENNARKYISYYS = 0.5; - private const double PALLON_LISAYS_VALE = 1.5; + private const double PALLON_LISAYS_VALI = 1; private const double PELAAJAN_KOKO = 80; private const double PELAAJAN_Y_SIJAINTI = 60; private const double PISTELASKURIN_Y_SIJAINTI = -50; @@ -22,6 +22,10 @@ public class Merirosvo_peli : PhysicsGame private IntMeter pisteet; private Timer pallojenLisaaja; private List<PhysicsObject> kaikkiPallot = new List<PhysicsObject>(); + + private static readonly Image PelaajaKuva = LoadImage("Merirosvo.png"); + private static readonly Image EsineKuva = LoadImage("Kolikko"); + private static readonly Image EsteKuva = LoadImage("Kanuunankuula"); /// <summary> /// Aloittaa pelin kutsumalla kentän luontia, ohjaimia ja pallojen lisäystä. @@ -44,14 +48,15 @@ public class Merirosvo_peli : PhysicsGame pelaaja = new PhysicsObject(PELAAJAN_KOKO, PELAAJAN_KOKO) { - Shape = Shape.Circle, - Color = Color.Brown, + Shape = Shape.Rectangle, X = 0, Y = Level.Bottom + PELAAJAN_Y_SIJAINTI, Restitution = 0.0, Tag = "pelaaja", - IgnoresCollisionResponse = true }; + pelaaja.Image = PelaajaKuva; + + Add(pelaaja); PhysicsObject pohja = Level.CreateBottomBorder(); @@ -87,14 +92,8 @@ public class Merirosvo_peli : PhysicsGame private void PysaytaLiike() { pelaaja.Velocity = Vector.Zero; - EstaPelaajanLiikkuminen(); - } - private void EstaPelaajanLiikkuminen() - { - if (pelaaja.Left <= Level.Left) - pelaaja.X = Level.Left + pelaaja.Width / 2; - if (pelaaja.Right >= Level.Right) - pelaaja.X = Level.Right - pelaaja.Width / 2; + if (pelaaja.Left <= Level.Left) pelaaja.X = Level.Left + pelaaja.Width / 2; + if (pelaaja.Right >= Level.Right) pelaaja.X = Level.Right - pelaaja.Width / 2; } /// <summary> @@ -122,7 +121,7 @@ public class Merirosvo_peli : PhysicsGame { pallojenLisaaja = new Timer { - Interval = PALLON_LISAYS_VALE + Interval = PALLON_LISAYS_VALI }; pallojenLisaaja.Timeout += LuoPallojaAalloittain; pallojenLisaaja.Start(); @@ -148,7 +147,6 @@ public class Merirosvo_peli : PhysicsGame double x = RandomGen.NextDouble(Level.Left + 50, Level.Right - 50); PhysicsObject pallo = new PhysicsObject(PALLON_KOKO, PALLON_KOKO) { - Shape = Shape.Circle, Position = new Vector(x, Level.Top), Velocity = new Vector(0, -PALLON_NOPEUS), Restitution = 0.0, @@ -157,13 +155,13 @@ public class Merirosvo_peli : PhysicsGame if (RandomGen.NextDouble(0.0, 1.0) > KANUUNANKUULAN_TODENNARKYISYYS) { - pallo.Color = Color.Yellow; pallo.Tag = "pistepallo"; + pallo.Image = EsineKuva; } else { - pallo.Color = Color.Black; pallo.Tag = "kanuunankuula"; + pallo.Image = EsteKuva; } kaikkiPallot.Add(pallo); @@ -178,11 +176,11 @@ public class Merirosvo_peli : PhysicsGame /// </summary> private void PelaajaOsuiPalloon(PhysicsObject pallo, PhysicsObject pelaaja) { - if (pallo.Tag.ToString() == "kanuunankuula") + if (pallo.Tag == "kanuunankuula") { ResetoiPeli(); } - else if (pallo.Tag.ToString() == "pistepallo") + else if (pallo.Tag == "pistepallo") { pisteet.Value += PISTEEN_ARVO; pallo.Destroy();