Skip to content
Snippets Groups Projects
Commit 1fcf3f80 authored by Kopperoinen Paulus Juho's avatar Kopperoinen Paulus Juho
Browse files

Lisäsin dokumentaatiota

parent c7337680
No related branches found
No related tags found
No related merge requests found
......@@ -9,11 +9,12 @@ using Jypeli.Widgets;
namespace matopeli;
/// @author Omanimi
/// @author Paulus Kopperoinen
/// @version 30.10.2023
/// <summary>
///
/// Perinteinen matopeli, jossa tavoitteena kasvattaa matoa mahdollisimman suureksi omenia syömällä.
/// </summary>
public class matopeli : PhysicsGame
{
private static readonly string[] tasonkuva = {
......@@ -65,11 +66,17 @@ public class matopeli : PhysicsGame
private bool MatoLiikkunut;
private bool OmenaKentalla;
public override void Begin()
{
AloitaUusiPeli();
}
/// <summary>
/// Poistaa vanhan pelin tiedot ja alustaa uuden pelin
/// </summary>
public void AloitaUusiPeli()
{
MatoKeho.Clear();
......@@ -84,10 +91,13 @@ public class matopeli : PhysicsGame
Asetaohjaimet();
LuoAikalaskuri();
LuoPistelaskuri();
//LuoEnnatyslaskuri();
LuoOmena();
}
/// <summary>
/// Määrittää ohjaimet, joita pelaaja voi käyttää ja mitä niitä painamalla tapahtuu
/// </summary>
private void Asetaohjaimet()
{
Keyboard.Listen(Key.Up, ButtonState.Pressed, VaihdaSuuntaYlos, "Turn upwards");
......@@ -98,6 +108,9 @@ public class matopeli : PhysicsGame
}
/// <summary>
/// Laskee pisteet, joita kerätään omenoita syömällä
/// </summary>
void LuoPistelaskuri()
{
pistelaskuri = new IntMeter(0);
......@@ -112,22 +125,11 @@ public class matopeli : PhysicsGame
pistenaytto.BindTo(pistelaskuri);
Add(pistenaytto);
}
void LuoEnnatyslaskuri()
{
Ennatyslaskuri = new IntMeter(0);
Label Ennatys = new Label();
Ennatys.X = Screen.Left + 700;
Ennatys.Y = Screen.Top - 10;
Ennatys.TextColor = Color.Black;
Ennatys.Color = Color.White;
Ennatys.Title = "Ennätys:";
Ennatys.BindTo(Ennatyslaskuri);
Add(Ennatys);
}
/// <summary>
/// Pelin asetukset
/// </summary>
private void Asetukset()
{
leveys = 40;
......@@ -141,10 +143,19 @@ public class matopeli : PhysicsGame
OmenaKentalla = true;
}
/// <summary>
/// Päättää pelin ja aloitaa uuden, kun mato kuolee
/// </summary>
private void MatoKuolee()
{
AloitaUusiPeli();
}
/// <summary>
/// Luo madon kentälle
/// </summary>
/// <returns></returns>
private PhysicsObject LuoMato()
{
Mato = new Objektit(leveys-5, korkeus-5);
......@@ -159,6 +170,7 @@ public class matopeli : PhysicsGame
return Mato;
}
/// <summary>
/// Luodaan omena johonkin satunnaiseen kohtaan kartalla, joka ei ole samassa kohtaa madon kanssa.
/// </summary>
......@@ -176,6 +188,11 @@ public class matopeli : PhysicsGame
return Omena;
}
/// <summary>
/// tehtävä on arpoa omenalle paikka, johon se luodaan. En ole vieläkään varma kuinka hyvin tämä toimii.
/// </summary>
/// <returns></returns>
private Vector ArvoOmenaPaikka()
{
Vector OmenaPaikka;
......@@ -218,6 +235,10 @@ public class matopeli : PhysicsGame
}
/// <summary>
/// Luo kentän reunat
/// </summary>
/// <returns></returns>
private PhysicsObject LuoSeina()
{
PhysicsObject Seina = new PhysicsObject(leveys, korkeus);
......@@ -228,6 +249,7 @@ public class matopeli : PhysicsGame
return Seina;
}
/// <summary>
/// Tehdään aliohjelma, joka luo uusia osia madon perään.
/// </summary>
......@@ -243,6 +265,10 @@ public class matopeli : PhysicsGame
return MatoMuu;
}
/// <summary>
/// Tekee tarvittavat toimet, kun mato onnistuu syömään omenan
/// </summary>
private void MatoSyoOmenan()
{
Omena.Destroy();
......@@ -250,6 +276,10 @@ public class matopeli : PhysicsGame
OmenaKentalla = false;
}
/// <summary>
/// Antaa tiedon LiikutaMatoa aliohjelmalle, että madon pitäisi kääntyä ylös.
/// </summary>
private void VaihdaSuuntaYlos()
{
......@@ -269,6 +299,10 @@ public class matopeli : PhysicsGame
}
}
/// <summary>
/// Antaa tiedon LiikutaMatoa aliohjelmalle, että madon pitäisi kääntyä alas.
/// </summary>
private void VaihdaSuuntaAlas()
{
if (SuuntaYlos==true)
......@@ -286,7 +320,11 @@ public class matopeli : PhysicsGame
SuuntaAlas = true;
}
}
/// <summary>
/// Antaa tiedon LiikutaMatoa aliohjelmalle, että madon pitäisi kääntyä oikeaan.
/// </summary>
private void VaihdaSuuntaOikea()
{
if (SuuntaVasen == true)
......@@ -306,7 +344,11 @@ public class matopeli : PhysicsGame
}
}
/// <summary>
/// Antaa tiedon LiikutaMatoa aliohjelmalle, että madon pitäisi kääntyä vasempaan.
/// </summary>
private void VaihdaSuuntaVasen()
{
if (SuuntaOikea==true)
......@@ -324,6 +366,11 @@ public class matopeli : PhysicsGame
SuuntaAlas = false;
}
}
/// <summary>
/// Aikalaskuri toimii pelin moottorina ja antaa PaivitaKentälle tiedon, kun pitää tarkistaa mitä kentällä on tapahtunut.
/// </summary>
private void LuoAikalaskuri()
{
Timer aikalaskuri = new Timer();
......@@ -332,6 +379,7 @@ public class matopeli : PhysicsGame
aikalaskuri.Timeout += PaivitaKentta;
}
/// <summary>
/// Kun ajastimesta loppuu aika, siirtyy peli tähän funktioon, jonka tarkoituksena on hahmottaa, mitä kaikkea pelissä on tapahtunut ja miten siihen tulee reagoida.
/// </summary>
......@@ -347,15 +395,17 @@ public class matopeli : PhysicsGame
LuoMatoKeho();
LuoOmena();
}
MatoSijainti.Add(new Vector(Mato.X,Mato.Y));
LiikutaMatoa();
LiikutaKehoa();
MatoSijainti.Add(new Vector(Mato.X,Mato.Y));
}
/// <summary>
/// LiikutaMatoa aliohjelman tehtävä on selvittää tieto siitä, mihin suuntaan on tarkoitus liikkua ja liikuttaa matoa siihen suuntaan.
/// </summary>
private void LiikutaMatoa()
{
MatoLiikkunut = false;
......@@ -385,10 +435,10 @@ public class matopeli : PhysicsGame
MatoLiikkunut = true;
}
/// <summary>
/// Tehdään silmukka, joka käy madon kaikki sijainnit ja liikuttaa madon muut osat niiden mukaan.
/// Liikutakehoa, aliohjelman tehtävänä on liikuttaa madon kehoa sen pään mukaisesti.
/// </summary>
private void LiikutaKehoa()
{
if (MatoKeho.Count==0)
......
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