Skip to content
Snippets Groups Projects
Commit 51cc228a authored by jalitat's avatar jalitat
Browse files

jee ollaan valmiit

parent e3a6f5b0
Branches main
No related tags found
No related merge requests found
No preview for this file type
No preview for this file type
......@@ -9,12 +9,14 @@ namespace platformerPeli;
/// <summary>
/// Platformer PVP Peli
/// </summary>
/// Tämä linkki on että osoitan osaavani taulukot https://tim.jyu.fi/view/kurssit/tie/ohj1/v/2024/syksy/demot/demo10?answerNumber=83&b=oLNB7gIsCK6M&size=1&task=tauno&user=jalitat
/// Tämä linkki on että osoitan osaavani taulukot https://tim.jyu.fi/view/kurssit/tie/ohj1/v/2024/syksy/demot/demo10?answerNumber=6&b=oLNB7gIsCK6M&size=1&task=tauno&user=garammtu
public class platformerPeli : PhysicsGame
{
private const int RuudunKoko = 40; // Kentän ruudun koko
private const double nopeus = 200; //liikkumisnopeutta
private const double hyppyNopeus = 650; //hyppyvoimaa
private const int RUUDUN_KOKO = 40; // Kentän ruudun koko
private const double NOPEUS = 200; //liikkumisnopeutta
private const double HYPPY_NOPEUS = 650; //hyppyvoimaa
private PlatformCharacter pelaaja; //pelaaja 1
private PlatformCharacter pelaaja2; //pelaaja 2
private Image pelaajankuva = LoadImage("alpha000.png"); //lataa tyhjänkuvan minkä heti jälkeen vaihtaa animaation kanssa
......@@ -54,7 +56,7 @@ public class platformerPeli : PhysicsGame
kentta.SetTileMethod('#', LuoTaso);
kentta.SetTileMethod('N', (paikka, leveys, korkeus) => LisaaPelaaja(paikka, ref pelaaja));
kentta.SetTileMethod('M', (paikka, leveys, korkeus) => LisaaPelaaja(paikka, ref pelaaja2));
kentta.Execute(RuudunKoko, RuudunKoko);
kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
Camera.ZoomToLevel();
}
......@@ -79,8 +81,7 @@ public class platformerPeli : PhysicsGame
/// Luo kaksi pelaaja (on mahdollista luoda enemmän)
/// </summary>
/// <param name="paikka">Pelaajan paikka</param>
/// <param name="leveys">Pelaajan leveys</param>
/// <param name="korkeus">Pelaajan korkeus</param>
/// <param name="pelaaja">peli hahmo</param>
private void LisaaPelaaja(Vector paikka, ref PlatformCharacter pelaaja)
{
pelaaja = new PlatformCharacter(52, 128);
......@@ -107,8 +108,7 @@ public class platformerPeli : PhysicsGame
/// <summary>
/// Luodaan itse ase ja sen ominaisuus
/// </summary>
/// <param name="pelaaja.Weapon">Pelaajan ase</param>
/// <param name="Image">tehdään aseesta läpinäkymätön jotta ei menisi spriten päälle</param>
/// <param name="pelaaja">Pelaajan</param>
private void LisaaAse(PlatformCharacter pelaaja)
{
if (pelaaja != null)
......@@ -124,9 +124,9 @@ public class platformerPeli : PhysicsGame
}
/// <summary>
/// Lisätään musiikkia ja pistetään loopille
/// </summary>
/// <summary>
/// Lisätään musiikkia ja pistetään loopille
/// </summary>
private void LisaaMusiikki()
{
MediaPlayer.Play("Twin_Crystal.wav");
......@@ -139,14 +139,14 @@ public class platformerPeli : PhysicsGame
/// </summary>
private void LisaaNappaimet()
{
Keyboard.Listen(Key.W, ButtonState.Pressed, () => Hyppaa(pelaaja, hyppyNopeus), "Pelaaja 1: Hyppää");
Keyboard.Listen(Key.A, ButtonState.Down, () => Liikuta(pelaaja, -nopeus), "Pelaaja 1: Liikuta vasemmalle");
Keyboard.Listen(Key.D, ButtonState.Down, () => Liikuta(pelaaja, nopeus), "Pelaaja 1: Liikuta oikealle");
Keyboard.Listen(Key.W, ButtonState.Pressed, () => Hyppaa(pelaaja, HYPPY_NOPEUS), "Pelaaja 1: Hyppää");
Keyboard.Listen(Key.A, ButtonState.Down, () => Liikuta(pelaaja, -NOPEUS), "Pelaaja 1: Liikuta vasemmalle");
Keyboard.Listen(Key.D, ButtonState.Down, () => Liikuta(pelaaja, NOPEUS), "Pelaaja 1: Liikuta oikealle");
Keyboard.Listen(Key.E, ButtonState.Down, () => AmmuAseella(pelaaja), "Pelaaja 1: Ammu");
Keyboard.Listen(Key.Up, ButtonState.Pressed, () => Hyppaa(pelaaja2, hyppyNopeus), "Pelaaja 2: Hyppää");
Keyboard.Listen(Key.Left, ButtonState.Down, () => Liikuta(pelaaja2, -nopeus), "Pelaaja 2: Liikuta vasemmalle");
Keyboard.Listen(Key.Right, ButtonState.Down, () => Liikuta(pelaaja2, nopeus), "Pelaaja 2: Liikuta oikealle");
Keyboard.Listen(Key.Up, ButtonState.Pressed, () => Hyppaa(pelaaja2, HYPPY_NOPEUS), "Pelaaja 2: Hyppää");
Keyboard.Listen(Key.Left, ButtonState.Down, () => Liikuta(pelaaja2, -NOPEUS), "Pelaaja 2: Liikuta vasemmalle");
Keyboard.Listen(Key.Right, ButtonState.Down, () => Liikuta(pelaaja2, NOPEUS), "Pelaaja 2: Liikuta oikealle");
Keyboard.Listen(Key.L, ButtonState.Down, () => AmmuAseella(pelaaja2), "Pelaaja 2: Ammu");
PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
......@@ -155,8 +155,10 @@ public class platformerPeli : PhysicsGame
/// <summary>
/// hahmo liikkuu
/// pelaaja liikkuu
/// </summary>
/// <param name="pelaaja">peli hahmo</param>
/// <param name="nopeus">liikkumis nopeutta</param>
private void Liikuta(PlatformCharacter pelaaja, double nopeus)
{
pelaaja.Walk(nopeus);
......@@ -166,6 +168,8 @@ public class platformerPeli : PhysicsGame
/// <summary>
/// suorittaa hypyn tässä
/// </summary>
/// <param name="pelaaja">peli hahmo</param>
/// <param name="hyppyNopeus"> nopeutta</param>
private void Hyppaa(PlatformCharacter pelaaja, double hyppyNopeus)
{
if (pelaaja != null && (PelaajaOnMaassa(pelaaja) || jumpcount < 2)) //kattoo onko maassa tai hyppiny liian vähän
......@@ -184,6 +188,7 @@ public class platformerPeli : PhysicsGame
/// <summary>
/// Ollaanko varmasti maassa
/// </summary>
/// <param name="pelaaja">pelaaja :D</param>
/// <returns> ollaanko iha varmasti maassa </returns>
private bool PelaajaOnMaassa(PlatformCharacter pelaaja)
{
......@@ -207,13 +212,14 @@ public class platformerPeli : PhysicsGame
/// <summary>
/// ammutaan aseella
/// </summary>
/// <param name="pelaaja">pelaaja itse</param>
private void AmmuAseella(PlatformCharacter pelaaja)
{
if (pelaaja.Weapon != null)
{
PhysicsObject ammus = pelaaja.Weapon.Shoot();
if (ammus != null)
if (ammus != null) //jos ammus on olemassa, tekee alemmat
{
ammus.Size *= 3;
ammus.Image = LoadImage("ThrowingKnife.png"); //ammos on puukko
......@@ -226,6 +232,8 @@ public class platformerPeli : PhysicsGame
/// <summary>
/// katsotaan kumpi voittaa ja kumpi tuhoutuu
/// </summary>
/// <param name="ammus">pelaajan ammo</param>
/// <param name="target">pelaaja on targetti, jos osuu, tuhoutuu</param>
private void AmmusOsui(PhysicsObject ammus, PhysicsObject target)
{
if (target == pelaaja2)
......@@ -244,6 +252,7 @@ public class platformerPeli : PhysicsGame
/// <summary>
/// PeliLopun jälkeen valinta ikkuna
/// </summary>
/// <param name="message">pelaa taas tai lopeta peli</param>
private void ShowEndMenu(string message)
{
ClearControls();
......
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