Skip to content
Snippets Groups Projects
Commit b04499ca authored by Vesa Lappalainen's avatar Vesa Lappalainen :bicyclist:
Browse files

Rajahdys ja vihun poisto

parent c06913ba
No related branches found
No related tags found
No related merge requests found
......@@ -22,10 +22,10 @@ public class KolmionMetsastys : PhysicsGame
for (int i = 0; i < 50; i++)
{
LuoSattunnainenKolmio(this, alaosa, 200);
LuoSattunnainenKolmio(this, alaosa, 200, "vihu");
}
PhysicsObject pelaaja = LuoSattunnainenKolmio(this, ylaosa, 50);
PhysicsObject pelaaja = LuoSattunnainenKolmio(this, ylaosa, 50, "pelaaja");
pelaaja.Color = Color.Red;
Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä avustus");
......@@ -34,11 +34,29 @@ public class KolmionMetsastys : PhysicsGame
Keyboard.Listen(Key.Left, ButtonState.Pressed, LyoKolmiota, "Pelaaja vasemmalle", pelaaja, new Vector(-200, 0));
Keyboard.Listen(Key.Right, ButtonState.Pressed, LyoKolmiota, "Pelaaja oikealle", pelaaja, new Vector(200, 0));
AddCollisionHandler(pelaaja, "vihu", PelaajaTormasi);
PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
}
/// <summary>
/// Metodi johon tullaan kun pelaaja ja joku kolmio törmäävät.
/// Luodaan vihollisen kohdalla räjähdys ja poistetaan vihollinen pelistä.
/// </summary>
/// <param name="pelaaja">pelaaja joka törmäsi</param>
/// <param name="vihu">vihollinen johon pelaaja törmäsi</param>
private void PelaajaTormasi(PhysicsObject pelaaja, PhysicsObject vihu)
{
Explosion rajahdys = new Explosion(vihu.Width * 2);
rajahdys.Position = vihu.Position;
rajahdys.UseShockWave = false; // kannattaa kokeilla mitä taphatuu true -arvolla.
this.Add(rajahdys);
Remove(vihu);
}
/// <summary>
/// Lyödään kolmiota voimavektorilla
/// </summary>
......@@ -49,14 +67,15 @@ public class KolmionMetsastys : PhysicsGame
kolmio.Hit(suunta);
}
/// <summary>
/// Luodaan satunnainen kolmio suorakaiteen sisälle. Myös väri ja kulma arvotaan.
/// </summary>
/// <param name="peli">Mihin peliin kolmio luodaan</param>
/// <param name="rect">Minkä suorakaiteen sisälle luodaan</param>
/// <param name="vauhti">Kolmion vauhti alkutilanteessa</param>
public static PhysicsObject LuoSattunnainenKolmio(PhysicsGame peli, BoundingRectangle rect, double vauhti=0)
/// <param name="tunniste">Kolmiolle annettava tunniste</param>
public static PhysicsObject LuoSattunnainenKolmio(PhysicsGame peli, BoundingRectangle rect, double vauhti=0, string tunniste="")
{
double leveys = RandomGen.NextDouble(10, 100);
double korkeus = RandomGen.NextDouble(10, 100);
......@@ -66,6 +85,7 @@ public class KolmionMetsastys : PhysicsGame
kolmio.Color = RandomGen.NextColor();
Vector suunta = RandomGen.NextVector(0, vauhti);
kolmio.Hit(suunta);
kolmio.Tag = tunniste;
peli.Add(kolmio);
return kolmio;
}
......
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