Skip to content
Snippets Groups Projects
Commit 53da685c authored by Kopperoinen Paulus's avatar Kopperoinen Paulus
Browse files

Peli alkaa olemaan jo loppusuoralla, mato liikkuu aikalailla niinkuin pitäisi...

Peli alkaa olemaan jo loppusuoralla, mato liikkuu aikalailla niinkuin pitäisi ja pysähtyy jos se törmää. Omenat voivat syntyä vielä ruutujen puoleenväliin, mutta en tiedä haittaako se oikeastaan. Seuraavaksi pitäisi saada uuden pelin aloittaminen toimimaan, jos mato kuolee. Lisäsin myös pistelaskurin peliin. Ajattelin, että voisi ehkä luoda myös kentälle pohjavärit, jos jaksaa.
parent d5edc408
No related branches found
No related tags found
No related merge requests found
......@@ -18,11 +18,11 @@ public class matopeli : PhysicsGame
{
private static readonly string[] tasonkuva = {
"#####################",
"#o #",
"# #",
"# #",
"# #",
"# #",
"# o #",
"# #",
"# #",
"# #",
......@@ -39,6 +39,7 @@ public class matopeli : PhysicsGame
private Objektit Mato;
private Objektit Omena;
private Objektit MatoMuu;
private Timer aikalaskuri;
public List<Vector> MatoSijainti = new List<Vector>();
public List<PhysicsObject> MatoKeho = new List<PhysicsObject>();
......@@ -59,6 +60,8 @@ public class matopeli : PhysicsGame
private bool MatoLiikkunut = true;
private bool GameOver = false;
private bool OmenaKentalla = true;
public override void Begin()
{
......@@ -90,13 +93,22 @@ public class matopeli : PhysicsGame
Keyboard.Listen(Key.Left, ButtonState.Pressed, VaihdaSuuntaVasen , "Turn left");
Keyboard.Listen(Key.Right, ButtonState.Pressed, VaihdaSuuntaOikea, "Turn right");
}
private void MatoKuolee()
{
GameOver = true;
}
private PhysicsObject LuoMato()
{
Mato = new Objektit(leveys, korkeus);
Mato.Image = matopaakuva;
Add(Mato);
Mato.Tag = "mato";
AddCollisionHandler(Mato, "omena", delegate(IPhysicsObject Mato, IPhysicsObject Omena) {MatoSyoOmenan(); });
AddCollisionHandler(Mato, "seina", delegate(IPhysicsObject Mato, IPhysicsObject seina) {MatoKuolee(); });
AddCollisionHandler(Mato, "matokeho", delegate(IPhysicsObject Mato, IPhysicsObject matokeho) {MatoKuolee(); });
return Mato;
}
......@@ -148,7 +160,7 @@ public class matopeli : PhysicsGame
}
private PhysicsObject LuoSeina()
{
PhysicsObject Seina = PhysicsObject.CreateStaticObject(leveys, korkeus);
PhysicsObject Seina = new PhysicsObject(leveys, korkeus);
Seina.Color = Color.Green;
Seina.Image = seinakuva;
Seina.Tag = "seina";
......@@ -258,33 +270,51 @@ public class matopeli : PhysicsGame
{
Timer aikalaskuri = new Timer();
aikalaskuri.Interval = 0.1;
aikalaskuri.Timeout += PaivitaKentta;
aikalaskuri.Start();
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.
///
///
/// GameOver tarkistaa, että onko mato kuollut
/// </summary>
private void PaivitaKentta()
{
if (GameOver == true)
{
PaataPeli();
}
if (MatoLiikkunut == false)
{
return;
}
if (OmenaKentalla == false)
{
LuoMatoKeho();
LuoOmena();
}
MatoSijainti.Add(new Vector(Mato.X,Mato.Y));
LiikutaMatoa();
LiikutaKehoa();
MatoSijainti.Add(new Vector(Mato.X,Mato.Y));
if (GameOver == false)
{
MatoSijainti.Add(new Vector(Mato.X,Mato.Y));
LiikutaMatoa();
LiikutaKehoa();
MatoSijainti.Add(new Vector(Mato.X,Mato.Y));
}
}
/// <summary>
/// tehdään ohjelma, joka päättää pelin.
/// </summary>
private void PaataPeli()
{
}
private void LiikutaMatoa()
{
MatoLiikkunut = false;
......@@ -343,7 +373,7 @@ public class matopeli : PhysicsGame
public Objektit(double leveys, double korkeus)
: base(leveys, korkeus)
{
Mass = 0;
Mass = 1000;
IsUpdated = true;
}
}
......
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