diff --git a/Escape/Escape/Escape.cs b/Escape/Escape/Escape.cs index f6f8f1d7e4c58f90b72fd7dca8ca7f985d9d938b..2f08d4ac673729051bee7ea884639e58c29ffe56 100644 --- a/Escape/Escape/Escape.cs +++ b/Escape/Escape/Escape.cs @@ -22,12 +22,10 @@ public class Escape : PhysicsGame PhysicsObject player = AddPlayer(this); SetControls(player); - PhysicsObject barkov = new PhysicsObject(50, 50); - barkov.Image = LoadImage("Barkov.png"); - barkov.X = 60; - barkov.Y = -60; - this.Add(barkov); - + PhysicsObject barkov = AddBarkov(this); + + AddCollisionHandler(player, barkov, Tackle); + Timer.CreateAndStart(4.0, SpawnPucks); } @@ -63,6 +61,31 @@ public class Escape : PhysicsGame return player; } + /// <summary> + /// Lisää "vihollisen" eli Barkovin pelikentälle + /// </summary> + /// <param name="game">Peli, johon hahmo lisätään</param> + /// <returns>Barkov</returns> + static PhysicsObject AddBarkov(PhysicsGame game) + { + PhysicsObject barkov = new PhysicsObject(50, 50); + barkov.Image = LoadImage("Barkov.png"); + barkov.X = 60; + barkov.Y = -60; + game.Add(barkov); + return barkov; + } + + /// <summary> + /// Törmäyksenkäsittelijä pelaajahahmolle ja Barkoville (kesken) + /// </summary> + /// <param name="player">Pelaajan hahmo</param> + /// <param name="barkov">Barkov</param> + void Tackle(PhysicsObject player, PhysicsObject barkov) + { + MessageDisplay.Add("Taklaus"); + } + /// <summary> /// Pelaajan liikuttaminen eteenpäin (myöhemmin animaation kanssa) @@ -93,7 +116,7 @@ public class Escape : PhysicsGame /// <param name="lifetime">Aika, jonka kiekko on kentällä ennen kuin se katoaa</param> void SpawnPucks(int amount, double lifetime) { - GameObject puck = new GameObject(18, 18); + PhysicsObject puck = new PhysicsObject(18, 18); puck.Shape = Shape.Circle; puck.Color = Color.Black; puck.LifetimeLeft = TimeSpan.FromSeconds(lifetime);