Skip to content
Snippets Groups Projects
Commit 970c3528 authored by Salonen Matteus Elmeri's avatar Salonen Matteus Elmeri
Browse files

Lisätty ampiaiset ja pelin häviämisen

parent 51c03ae2
No related branches found
No related tags found
No related merge requests found
Harjoitustyo/HyttysPeli/Content/ampiainen.png

373 KiB

......@@ -37,9 +37,13 @@ public class HyttysPeli : PhysicsGame
for(int i = 0; i < 20; i++)
LuoSattunnainenHyttynen(this, ylaosa, 60, "hyttynen");
for (int j = 0; j < 5; j++)
LuoSattunnainenAmpiainen(this, ylaosa, 60, "ampiainen");
AddCollisionHandler(pelaaja, "hyttynen", PelaajaTormasi);
AddCollisionHandler(pelaaja, "hyttynen", PelaajaTormasiHyttyseen);
AddCollisionHandler(pelaaja, "ampiainen", PelaajaTormasiAmpiaiseen);
PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
......@@ -51,20 +55,38 @@ public class HyttysPeli : PhysicsGame
/// </summary>
/// <param name="pelaaja">pelaaja joka törmäsi</param>
/// <param name="hyttynen">hyttynen johon pelaaja törmäsi</param>
private void PelaajaTormasi(PhysicsObject pelaaja, PhysicsObject hyttynen)
private void PelaajaTormasiHyttyseen(PhysicsObject pelaaja, PhysicsObject hyttynen)
{
double pelaajanAla = HyttysenAla(pelaaja.Width, pelaaja.Height);
double hyttysenAla = HyttysenAla(hyttynen.Width, hyttynen.Height);
Explosion rajahdys = new Explosion(hyttynen.Width * 2);
rajahdys.Position = hyttynen.Position;
rajahdys.UseShockWave = false;
this.Add(rajahdys);
Remove(hyttynen);
}
if (pelaajanAla > hyttysenAla)
{
Explosion rajahdys = new Explosion(hyttynen.Width * 2);
rajahdys.Position = hyttynen.Position;
rajahdys.UseShockWave = false; // kannattaa kokeilla mitä taphatuu true -arvolla.
this.Add(rajahdys);
Remove(hyttynen);
}
/// <summary>
/// Metodi johon tullaan kun pelaaja ja joku ampiainen törmäävät.
/// Jos pelaaja osuu ampiaiseen, peli alkaa alusta.
/// </summary>
/// <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();
}
/// <summary>
/// Lyödään hyttystä voimavektorilla
/// </summary>
......@@ -77,7 +99,7 @@ public class HyttysPeli : PhysicsGame
/// <summary>
/// Luodaan satunnainen hyttynen suorakaiteen sisälle.
/// Luodaan satunnainen hyttynen.
/// </summary>
/// <param name="peli">Mihin peliin hyttynen luodaan</param>
/// <param name="rect">Minkä suorakaiteen sisälle luodaan</param>
......@@ -98,7 +120,28 @@ public class HyttysPeli : PhysicsGame
return hyttynen;
}
/// <summary>
/// Luodaan satunnainen ampiainen.
/// </summary>
/// <param name="peli">Mihin peliin ampiainen luodaan</param>
/// <param name="rect">Minkä suorakaiteen sisälle luodaan</param>
/// <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)
{
double leveys = 50;
double korkeus = 50;
PhysicsObject ampiainen = new PhysicsObject(leveys, korkeus, Shape.Circle);
ampiainen.Position = RandomGen.NextVector(rect);
Vector suunta = RandomGen.NextVector(0, vauhti);
ampiainen.Hit(suunta);
ampiainen.Tag = tunniste;
ampiainen.Image = LoadImage("ampiainen");
peli.Add(ampiainen);
return ampiainen;
}
/// <summary>
/// Laskee hyttysen alan
......
......@@ -20,6 +20,9 @@
<None Update="Content\hyttynen (2).png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Content\ampiainen.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment