Skip to content
Snippets Groups Projects
Commit 2279a19b authored by Sulasalmi Aleksi Sakari's avatar Sulasalmi Aleksi Sakari
Browse files

lisäsin aseen, räjähdyksen ja ohjaimia

parent 1937b12d
No related branches found
No related tags found
No related merge requests found
......@@ -21,6 +21,8 @@ public class Lokkihunter : PhysicsGame
private PhysicsObject lokkiVasen;
private PhysicsObject lokkiOikea;
AssaultRifle pekkaAse;
private PhysicsObject alaReuna;
private PhysicsObject ylaReuna;
private PhysicsObject oikeaReuna;
......@@ -64,10 +66,15 @@ public class Lokkihunter : PhysicsGame
Keyboard.Listen(Key.A,ButtonState.Down, AsetaNopeusPekka, "Pekka: Liikkuu oikealle", pekka, nopeusOikea);
Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeusPekka, null, pekka, Vector.Zero);
Mouse.Listen(MouseButton.Left, ButtonState.Down, AmmuAseella, "Ammu", pekkaAse);
Mouse.ListenMovement(0.1, Tahtaa, "Tähtää aseella");
}
/// <summary>
/// Aliohjelma luo Pekan.
/// Aliohjelma luo Pekan ja antaa sille aseen.
/// </summary>
/// <param name="x">X-koordinaatti</param>
/// <param name="y">Y-koordinaatti</param>
......@@ -79,8 +86,58 @@ public class Lokkihunter : PhysicsGame
pekka.X = x;
pekka.Y = y;
Add(pekka);
pekkaAse = new AssaultRifle(40, 10);
pekkaAse.Ammo.Value = 100;
pekkaAse.FireRate = 5.0;
pekkaAse.ProjectileCollision = AmmusOsui;
pekkaAse.Position = pekka.Position + new Vector(pekka.Width / 2, 0);
pekkaAse.Angle = Angle.FromDegrees(90);
pekka.Add(pekkaAse);
return pekka;
}
/// <summary>
/// Mitä tapahtuu kun ammus osuu lokkiin
/// </summary>
/// <param name="ammus">ammus</param>
/// <param name="kohde">mitä ammutaan</param>
void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
{
Explosion rajahdys = new Explosion(50);
rajahdys.Position = kohde.Position;
Add(rajahdys);
ammus.Destroy();
kohde.Destroy();
}
/// <summary>
///
/// </summary>
/// <param name="ase">millä ammutaan</param>
void AmmuAseella(AssaultRifle ase)
{
PhysicsObject ammus = ase.Shoot();
if (ammus != null)
{
ammus.Size *= 4;
// ammus.Image = ...
ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
}
}
/// <summary>
/// Asella tähtääminen liikuttamalla hiirtä.
/// </summary>
void Tahtaa()
{
Vector suunta = (Mouse.PositionOnWorld - pekkaAse.AbsolutePosition).Normalize();
pekkaAse.Angle = suunta.Angle;
}
/// <summary>
/// asettaa pekalle nopuden.
/// </summary>
......@@ -129,5 +186,6 @@ public class Lokkihunter : PhysicsGame
// ase
// pisteet
// kentät
// kommentit
// kommentit koodiin
// alkuvalikko
}
\ No newline at end of file
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