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

Sain vihdoinkin liikkumisen toimimaan kunnolla. Ongelma oli ollut silmukassa....

Sain vihdoinkin liikkumisen toimimaan kunnolla. Ongelma oli ollut silmukassa. Seuraavaksi aion tehdä kuolemisaliohjelman
parent 18246cca
No related branches found
No related tags found
No related merge requests found
......@@ -43,8 +43,8 @@ public class matopeli : PhysicsGame
public List<Vector> MatoSijainti = new List<Vector>();
public List<PhysicsObject> MatoKeho = new List<PhysicsObject>();
public int leveys = 40;
public int korkeus = 40;
public int leveys = 30;
public int korkeus = 30;
private static readonly Image seinakuva = LoadImage("seina.png");
private static readonly Image matopaakuva = LoadImage("matopaa.png");
......@@ -57,6 +57,8 @@ public class matopeli : PhysicsGame
private bool SuuntaOikea = false;
private bool SuuntaVasen = false;
private bool MatoLiikkunut = true;
private bool OmenaKentalla = true;
public override void Begin()
{
......@@ -159,15 +161,19 @@ public class matopeli : PhysicsGame
/// <summary>
/// Tehdään aliohjelma, joka luo uusia osia madon perään.
/// </summary>
private PhysicsObject LuoMatoKeho(Vector Paikka)
public PhysicsObject LuoMatoKeho()
{
MatoMuu = new Objektit(leveys, korkeus);
MatoMuu = new Objektit(leveys-8, korkeus-8);
MatoMuu.Tag = "matokeho";
MatoMuu.Image = matokehokuva;
Vector Paikka = MatoSijainti[MatoSijainti.Count - 1 - MatoKeho.Count];
MatoMuu.IgnoresCollisionResponse = true;
MatoMuu.Position = Paikka;
MatoMuu.AngularDamping = 0.0;
MatoKeho.Add(MatoMuu);
Add(MatoMuu);
MatoKeho.Add(MatoMuu);
return MatoMuu;
}
......@@ -175,7 +181,6 @@ public class matopeli : PhysicsGame
{
Omena.Destroy();
OmenaKentalla = false;
LuoMatoKeho(MatoSijainti[MatoSijainti.Count-MatoKeho.Count-1]);
}
private void VaihdaSuuntaYlos()
......@@ -266,54 +271,47 @@ public class matopeli : PhysicsGame
/// </summary>
private void PaivitaKentta()
{
//Tämän on tarkoitus liikuttaa matoa, aina, kun se saapuu tasalukuun.
//tavoitteena oli,että mato ei liikkuisi, jos se on ruudun puolivälissä
if (MatoLiikkunut == false)
{
return;
}
if (OmenaKentalla == false)
{
LuoMatoKeho();
LuoOmena();
}
MatoSijainti.Add(new Vector(Mato.X,Mato.Y));
LiikutaMatoa();
if (MatoKeho.Count>0)
{
LiikutaKehoa();
}
LiikutaKehoa();
MatoSijainti.Add(new Vector(Mato.X,Mato.Y));
}
private void LiikutaMatoa()
{
if (SuuntaYlos==true)
{
Mato.Y = Mato.Y + leveys+5;
Mato.Y = Mato.Y + leveys;
Mato.Angle = Angle.FromDegrees(90);
}
if (SuuntaAlas==true)
{
Mato.Y= Mato.Y - leveys+5;
Mato.Y= Mato.Y - leveys;
Mato.Angle = Angle.FromDegrees(270);
}
if (SuuntaOikea==true)
{
Mato.X= Mato.X + leveys+5;
Mato.X= Mato.X + leveys;
Mato.Angle = Angle.FromDegrees(0);
}
if (SuuntaVasen==true)
{
Mato.X= Mato.X - leveys+5;
Mato.X= Mato.X - leveys;
Mato.Angle = Angle.FromDegrees(180);
}
MatoSijainti.Add(Mato.Position);
}
/// <summary>
......@@ -322,13 +320,21 @@ public class matopeli : PhysicsGame
private void LiikutaKehoa()
{
MatoKeho[0].X = MatoSijainti[MatoSijainti.Count - 2].X;
MatoKeho[0].Y = MatoSijainti[MatoSijainti.Count - 2].Y;
for (int i = 1; i < MatoKeho.Count-1; i++)
if (MatoKeho.Count==0)
{
MatoKeho[i].X = MatoKeho[i - 1].X;
MatoKeho[i].Y = MatoKeho[i - 1].Y;
return;
}
MatoLiikkunut = false;
MatoKeho[0].X = MatoSijainti[MatoSijainti.Count - 1].X;
MatoKeho[0].Y = MatoSijainti[MatoSijainti.Count - 1].Y;
for (int i = 1; i < MatoKeho.Count; i++)
{
MatoKeho[i].X = MatoSijainti[MatoSijainti.Count - 2*i].X;
MatoKeho[i].Y = MatoSijainti[MatoSijainti.Count - 2*i].Y;
}
MatoLiikkunut = true;
}
......@@ -337,7 +343,7 @@ public class matopeli : PhysicsGame
public Objektit(double leveys, double korkeus)
: base(leveys, korkeus)
{
Mass = 10000;
Mass = 0;
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