diff --git a/Harjoitustyo/HyttysPeli/Content/hyttyskarkoite.png b/Harjoitustyo/HyttysPeli/Content/hyttyskarkoite.png index a4a566cd46ea8e028e5a038dcbb65dc80acb7c01..2e959313bb4d8540ac9f6f1ccee0f2bf48fe6416 100644 Binary files a/Harjoitustyo/HyttysPeli/Content/hyttyskarkoite.png and b/Harjoitustyo/HyttysPeli/Content/hyttyskarkoite.png differ diff --git a/Harjoitustyo/HyttysPeli/Content/taustakuva.jpg b/Harjoitustyo/HyttysPeli/Content/taustakuva.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9b1b4e9e38a502401a48fc8f25f26b696d9dd8a4 Binary files /dev/null and b/Harjoitustyo/HyttysPeli/Content/taustakuva.jpg differ diff --git a/Harjoitustyo/HyttysPeli/HyttysPeli.cs b/Harjoitustyo/HyttysPeli/HyttysPeli.cs index 311ef65ed90dd670cd5e2628d8bccabacb66d14f..8bc87c6acfdf6b5ff0064068fb464e46aa541744 100644 --- a/Harjoitustyo/HyttysPeli/HyttysPeli.cs +++ b/Harjoitustyo/HyttysPeli/HyttysPeli.cs @@ -14,16 +14,18 @@ namespace HyttysPeli; /// </summary> public class HyttysPeli : PhysicsGame { + Image taustaKuva = LoadImage("taustakuva"); public override void Begin() { MasterVolume = 0.05; - Level.Background.Color = Color.Green; - BoundingRectangle alaosa = new BoundingRectangle(new Vector(Level.Left, 0), Level.BoundingRect.BottomRight); - BoundingRectangle ylaosa = new BoundingRectangle(Level.BoundingRect.TopLeft, new Vector(Level.Right, 0)); + SetWindowSize(1920, 1080, true); + Level.Background.Image = taustaKuva; - Level.CreateBorders(); + BoundingRectangle alaosa = new BoundingRectangle(new Vector(-100, 1), Level.BoundingRect.BottomRight); + BoundingRectangle ylaosa = new BoundingRectangle(new Vector(-960, 0), new Vector(960, 540)); - PhysicsObject pelaaja = new PhysicsObject(100, 100, Shape.Rectangle); + + PhysicsObject pelaaja = new PhysicsObject(25, 100, Shape.Rectangle); pelaaja.Position = RandomGen.NextVector(alaosa); pelaaja.Image = LoadImage("hyttyskarkoite"); Add(pelaaja); @@ -35,22 +37,26 @@ public class HyttysPeli : PhysicsGame Keyboard.Listen(Key.Right, ButtonState.Down, LyoHyttysta, "Pelaaja oikealle", pelaaja, new Vector(20, 0)); - for(int i = 0; i < 20; i++) - LuoSattunnainenHyttynen(this, ylaosa, 60, "hyttynen"); + for (int i = 0; i < 25; i++) + { + LuoHyttynen(this, ylaosa, 60, "hyttynen"); + } - for (int j = 0; j < 5; j++) - LuoSattunnainenAmpiainen(this, ylaosa, 60, "ampiainen"); + for (int j = 0; j < 10; j++) + { + LuoAmpiainen(this, ylaosa, 60, "ampiainen"); + } - AddCollisionHandler(pelaaja, "hyttynen", PelaajaTormasiHyttyseen); AddCollisionHandler(pelaaja, "ampiainen", PelaajaTormasiAmpiaiseen); PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); } + /// <summary> - /// Metodi johon tullaan kun pelaaja ja joku hyttynen törmäävät. + /// Metodi johon tullaan kun pelaaja ja hyttynen törmäävät. /// Luodaan hyttysen kohdalla räjähdys ja poistetaan hyttynen pelistä /// </summary> /// <param name="pelaaja">pelaaja joka törmäsi</param> @@ -72,15 +78,6 @@ public class HyttysPeli : PhysicsGame /// <param name="pelaaja">pelaaja joka törmäsi</param> /// <param name="ampiainen">ampiainen johon pelaaja törmäsi</param> private void PelaajaTormasiAmpiaiseen(PhysicsObject pelaaja, PhysicsObject ampiainen) - { - AloitaAlusta(); - } - - - /// <summary> - /// Aloittaa pelin alusta - /// </summary> - void AloitaAlusta() { ClearAll(); Begin(); @@ -106,11 +103,11 @@ public class HyttysPeli : PhysicsGame /// <param name="vauhti">Hyttysen vauhti alkutilanteessa</param> /// <param name="tunniste">Hyttyselle annettava tunniste</param> /// <returns>Viite luotuun hyttyseen</returns> - public static PhysicsObject LuoSattunnainenHyttynen(PhysicsGame peli, BoundingRectangle rect, double vauhti, string tunniste) + public PhysicsObject LuoHyttynen(PhysicsGame peli, BoundingRectangle rect, double vauhti, string tunniste) { double leveys = 50; double korkeus = 50; - PhysicsObject hyttynen = new PhysicsObject(leveys, korkeus, Shape.Circle); + PhysicsObject hyttynen = new PhysicsObject(leveys, korkeus, Shape.Rectangle); hyttynen.Position = RandomGen.NextVector(rect); Vector suunta = RandomGen.NextVector(0, vauhti); hyttynen.Hit(suunta); @@ -129,11 +126,11 @@ public class HyttysPeli : PhysicsGame /// <param name="vauhti">Ampiaisen vauhti alkutilanteessa</param> /// <param name="tunniste">Ampiaiselle annettava tunniste</param> /// <returns>Viite luotuun Ampiaiseen</returns> - public static PhysicsObject LuoSattunnainenAmpiainen(PhysicsGame peli, BoundingRectangle rect, double vauhti, string tunniste) + public PhysicsObject LuoAmpiainen(PhysicsGame peli, BoundingRectangle rect, double vauhti, string tunniste) { - double leveys = 50; - double korkeus = 50; - PhysicsObject ampiainen = new PhysicsObject(leveys, korkeus, Shape.Circle); + double leveys = 75; + double korkeus = 75; + PhysicsObject ampiainen = new PhysicsObject(leveys, korkeus, Shape.Rectangle); ampiainen.Position = RandomGen.NextVector(rect); Vector suunta = RandomGen.NextVector(0, vauhti); ampiainen.Hit(suunta); @@ -142,23 +139,4 @@ public class HyttysPeli : PhysicsGame peli.Add(ampiainen); return ampiainen; } - - /// <summary> - /// Laskee hyttysen alan - /// </summary> - /// <param name="kanta">hyttysen kanta</param> - /// <param name="korkeus">hyttysen korkeus</param> - /// <returns>hyttysen ala</returns> - /// <example> - /// <pre name="test"> - /// HyttysenAla(0,0) ~~~ 0; - /// HyttysenAla(1,0) ~~~ 0; - /// HyttysenAla(1,1) ~~~ 0.5; - /// HyttysenAla(3,5) ~~~ 7.5; - /// </pre> - /// </example> - public static double HyttysenAla(double kanta, double korkeus) - { - return kanta * korkeus * 1 / 2; - } } diff --git a/Harjoitustyo/HyttysPeli/HyttysPeli.csproj b/Harjoitustyo/HyttysPeli/HyttysPeli.csproj index dc024d920dac81c61d960972868b731ce2a7119f..308da7cc306a7674b0217e9db8a649f10705712d 100644 --- a/Harjoitustyo/HyttysPeli/HyttysPeli.csproj +++ b/Harjoitustyo/HyttysPeli/HyttysPeli.csproj @@ -23,6 +23,9 @@ <None Update="Content\ampiainen.png"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> + <None Update="Content\taustakuva.jpg"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> </ItemGroup> </Project>