Skip to content
Snippets Groups Projects
Commit 155daca4 authored by Salonen Leo Sakari's avatar Salonen Leo Sakari
Browse files

Korjasin kartan toiminnallisuuden, lisäsin ja täydensin dokumentaatiota,...

Korjasin kartan toiminnallisuuden, lisäsin ja täydensin dokumentaatiota, viilasin viel' laskurista turhia literaaleja pois.
parent 16db8ba2
No related branches found
No related tags found
No related merge requests found
*
## *
##
* *
## ## * *
## ##
* *
## ## ## * *
## ## ##
* * * *
## ## ## ## * * * *
## ## ## ##
* * * *
## ## ## ## ## * * * *
## ## ## ## ##
N
###################### N
###########################
namespace pomppu_possu; namespace pomppu_possu;
using Jypeli; using Jypeli;
/// <summary>
/// Megaporkkanat niminen olio, joka luo Megaporkkanat nimisen physics object luokan
/// Tänne on myös sisällytetty aliohjelmat megaporkkanoiden keräämistä
/// ja tuhoamista varten.
/// </summary>
public class Megaporkkanat : PhysicsObject public class Megaporkkanat : PhysicsObject
{ {
...@@ -9,6 +13,8 @@ public class Megaporkkanat : PhysicsObject ...@@ -9,6 +13,8 @@ public class Megaporkkanat : PhysicsObject
{ {
_osumat = 0; _osumat = 0;
} }
/// <summary> /// <summary>
/// Aliohjelma, joka käsittelee osumat megaporkkanoihin. /// Aliohjelma, joka käsittelee osumat megaporkkanoihin.
/// Havaitessaan osuman, aliohjema kutsuu toista aliohjelmaa, /// Havaitessaan osuman, aliohjema kutsuu toista aliohjelmaa,
...@@ -25,6 +31,8 @@ public class Megaporkkanat : PhysicsObject ...@@ -25,6 +31,8 @@ public class Megaporkkanat : PhysicsObject
} }
} }
/// <summary> /// <summary>
/// Aliohjelma, joka tuhoaa megaporkkanan. /// Aliohjelma, joka tuhoaa megaporkkanan.
/// </summary> /// </summary>
...@@ -34,5 +42,6 @@ public class Megaporkkanat : PhysicsObject ...@@ -34,5 +42,6 @@ public class Megaporkkanat : PhysicsObject
} }
} }
\ No newline at end of file
namespace pomppu_possu; namespace pomppu_possu;
using Jypeli; using Jypeli;
/// <summary>
/// Tasot niminen olio, joka luo Tasot nimisen physics object luokan
/// </summary>
public class Tasot : PhysicsObject public class Tasot : PhysicsObject
{ {
public Tasot(double leveys, double korkeus) public Tasot(double leveys, double korkeus)
......
...@@ -7,10 +7,11 @@ using Jypeli.Widgets; ...@@ -7,10 +7,11 @@ using Jypeli.Widgets;
namespace pomppu_possu; namespace pomppu_possu;
/// @author suvitoivanen /// @author suvitoivanen, leosaksa
/// @version 14.02.2025 /// @version 02.04.2025
/// <summary> /// <summary>
/// Eeppinen tasohyppely peli /// Eeppinen tasohyppely peli, jossa pelaajan tehtävä on kerätä kaikki
/// kartalta löytyvät megaporkkanat (13kpl)
/// </summary> /// </summary>
public class PomppuPossu : PhysicsGame public class PomppuPossu : PhysicsGame
{ {
...@@ -25,13 +26,14 @@ public class PomppuPossu : PhysicsGame ...@@ -25,13 +26,14 @@ public class PomppuPossu : PhysicsGame
private SoundEffect _pisteAani = LoadSoundEffect("maali.wav"); private SoundEffect _pisteAani = LoadSoundEffect("maali.wav");
private IntMeter pelaajanPisteet; private IntMeter pelaajanPisteet;
/// <summary> /// <summary>
/// Pääohjelma luo kentän ja näppäinkomennot. /// Pääohjelma kutsuu kentän luovaa aliohjelmaa ja luo näppäinkomennot.
/// </summary> /// </summary>
public override void Begin() public override void Begin()
{ {
Gravity = new Vector(0, -1000);
LuoKentta(); LuoKentta();
LisaaLaskuri(); LisaaLaskuri();
...@@ -40,6 +42,7 @@ public class PomppuPossu : PhysicsGame ...@@ -40,6 +42,7 @@ public class PomppuPossu : PhysicsGame
Camera.StayInLevel = true; Camera.StayInLevel = true;
MasterVolume = 0.5; MasterVolume = 0.5;
Level.CreateBorders(); Level.CreateBorders();
Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pomppuPossu, HYPPYNOPEUS); Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pomppuPossu, HYPPYNOPEUS);
Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikuttaa pelaajaa vasemmalle", pomppuPossu, -NOPEUS); Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikuttaa pelaajaa vasemmalle", pomppuPossu, -NOPEUS);
...@@ -47,18 +50,23 @@ public class PomppuPossu : PhysicsGame ...@@ -47,18 +50,23 @@ public class PomppuPossu : PhysicsGame
Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
} }
/// <summary> /// <summary>
/// Funktio luo kentän hyödyntäen txt tiedostoa. /// Funktio luo kentän hyödyntäen txt tiedostoa ja lisää painovoiman.
/// </summary> /// </summary>
private void LuoKentta() private void LuoKentta()
{ {
TileMap kentta = TileMap.FromLevelAsset("kentta1.txt"); TileMap kentta = TileMap.FromLevelAsset("kentta1.txt");
Gravity = new Vector(0, -1000);
kentta.SetTileMethod('#', LisaaTaso); kentta.SetTileMethod('#', LisaaTaso);
kentta.SetTileMethod('N', LisaaPelaaja); kentta.SetTileMethod('N', LisaaPelaaja);
kentta.SetTileMethod('*', LisaaPorkkana); kentta.SetTileMethod('*', LisaaPorkkana);
kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO); kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
Level.Background.CreateGradient(Color.White, Color.SkyBlue); Level.Background.CreateGradient(Color.White, Color.SkyBlue);
} }
/// <summary> /// <summary>
/// Funktio lisää kerättävät objektit kentälle /// Funktio lisää kerättävät objektit kentälle
/// </summary> /// </summary>
...@@ -73,6 +81,8 @@ public class PomppuPossu : PhysicsGame ...@@ -73,6 +81,8 @@ public class PomppuPossu : PhysicsGame
megaporkkana.Image = _porkkanaKuva; megaporkkana.Image = _porkkanaKuva;
Add(megaporkkana); Add(megaporkkana);
} }
/// <summary> /// <summary>
/// Funktio lisää tasot kentälle. /// Funktio lisää tasot kentälle.
/// </summary> /// </summary>
...@@ -87,6 +97,8 @@ public class PomppuPossu : PhysicsGame ...@@ -87,6 +97,8 @@ public class PomppuPossu : PhysicsGame
taso.MakeStatic(); taso.MakeStatic();
Add(taso); Add(taso);
} }
/// <summary> /// <summary>
/// Funktio lisää pelaajan kentälle. /// Funktio lisää pelaajan kentälle.
/// </summary> /// </summary>
...@@ -102,6 +114,8 @@ public class PomppuPossu : PhysicsGame ...@@ -102,6 +114,8 @@ public class PomppuPossu : PhysicsGame
AddCollisionHandler<PhysicsObject, Megaporkkanat>(pomppuPossu, TormattiinEsineeseen); AddCollisionHandler<PhysicsObject, Megaporkkanat>(pomppuPossu, TormattiinEsineeseen);
Add(pomppuPossu); Add(pomppuPossu);
} }
/// <summary> /// <summary>
/// Funktio luo liikkeen sivuille pelaajalle, jota kutsutaan näppäimistöllä. /// Funktio luo liikkeen sivuille pelaajalle, jota kutsutaan näppäimistöllä.
/// </summary> /// </summary>
...@@ -111,6 +125,8 @@ public class PomppuPossu : PhysicsGame ...@@ -111,6 +125,8 @@ public class PomppuPossu : PhysicsGame
{ {
pomppuPossu.Walk(nopeus); pomppuPossu.Walk(nopeus);
} }
/// <summary> /// <summary>
/// Funktio luo liikkeen ylöspäin, jota kutsutaan näppäimistöllä. /// Funktio luo liikkeen ylöspäin, jota kutsutaan näppäimistöllä.
/// </summary> /// </summary>
...@@ -120,6 +136,8 @@ public class PomppuPossu : PhysicsGame ...@@ -120,6 +136,8 @@ public class PomppuPossu : PhysicsGame
{ {
pomppuPossu.Jump(nopeus); pomppuPossu.Jump(nopeus);
} }
/// <summary> /// <summary>
/// Funktio käsittelee törmäykset. /// Funktio käsittelee törmäykset.
/// Törmäyksen yhteydessä tuhotaan porkkana, /// Törmäyksen yhteydessä tuhotaan porkkana,
...@@ -137,6 +155,7 @@ public class PomppuPossu : PhysicsGame ...@@ -137,6 +155,7 @@ public class PomppuPossu : PhysicsGame
} }
/// <summary> /// <summary>
/// Liikuttaa fysiikkaoliota. /// Liikuttaa fysiikkaoliota.
/// </summary> /// </summary>
...@@ -146,16 +165,18 @@ public class PomppuPossu : PhysicsGame ...@@ -146,16 +165,18 @@ public class PomppuPossu : PhysicsGame
{ {
liikuteltava.Push(suunta); liikuteltava.Push(suunta);
} }
/// <summary>
/// Aliohjelma luo pistelaskurin
/// </summary> /// <summary>
/// <param name="x">laskurin x-koordinaatti näytöllä</param> /// Aliohjelma luo pistelaskurin
/// <param name="y">laskurin y-koordinaatti näytöllä</param> /// </summary>
/// <returns>Laskuri</returns> /// <param name="x">laskurin x-koordinaatti näytöllä</param>
/// <param name="y">laskurin y-koordinaatti näytöllä</param>
/// <returns>Laskuri</returns>
IntMeter LuoPisteLaskuri(double x, double y) IntMeter LuoPisteLaskuri(double x, double y)
{ {
IntMeter laskuri = new IntMeter(0); IntMeter laskuri = new IntMeter(0);
laskuri.MaxValue = 13;
Label naytto = new Label(); Label naytto = new Label();
naytto.BindTo(laskuri); naytto.BindTo(laskuri);
...@@ -168,6 +189,8 @@ public class PomppuPossu : PhysicsGame ...@@ -168,6 +189,8 @@ public class PomppuPossu : PhysicsGame
return laskuri; return laskuri;
} }
/// <summary> /// <summary>
/// Lisää Laskurin peliin ja määrittää sen sijainnin näytöllä /// Lisää Laskurin peliin ja määrittää sen sijainnin näytöllä
/// </summary> /// </summary>
......
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