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

En tiedä näkyikö toi edellinen viesti mutta unohdin addata viime commitissa...

En tiedä näkyikö toi edellinen viesti mutta unohdin addata viime commitissa niin edellinen kommentti liittyi tähän committiin, aion siis seuraavaksi luultavasti vaihtaa madon kehon fyysisestä pelkäksi piirrokseksi
parent e8031f37
No related branches found
No related tags found
No related merge requests found
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography.X509Certificates; using System.Security.Cryptography.X509Certificates;
using Jypeli; using Jypeli;
using Jypeli.Assets; using Jypeli.Assets;
...@@ -90,7 +91,7 @@ public class matopeli : PhysicsGame ...@@ -90,7 +91,7 @@ public class matopeli : PhysicsGame
} }
private PhysicsObject LuoMato() private PhysicsObject LuoMato()
{ {
Mato = new Objektit(leveys, korkeus, new Vector(0,0)); Mato = new Objektit(leveys, korkeus);
Mato.Image = matopaakuva; Mato.Image = matopaakuva;
Add(Mato); Add(Mato);
Mato.Tag = "mato"; Mato.Tag = "mato";
...@@ -107,40 +108,37 @@ public class matopeli : PhysicsGame ...@@ -107,40 +108,37 @@ public class matopeli : PhysicsGame
Vector paikka = Level.GetRandomPosition(); Vector paikka = Level.GetRandomPosition();
for (int i = 0; i < 20; i++) for (int i = 0; i < 100; i++)
{ {
if (paikka.X-Mato.X<20) if (paikka.X-Mato.X<5)
{ {
if (paikka.Y-Mato.Y<20) paikka = Level.GetRandomPosition();
{
paikka = Level.GetRandomPosition();
}
} }
if (paikka.X<70) if (paikka.X-Mato.Y<5)
{ {
if (paikka.X<-70) paikka= Level.GetRandomPosition();
{
paikka = Level.GetRandomPosition();
}
} }
else if (paikka.X<30)
{ {
paikka = Level.GetRandomPosition(); if (paikka.X < -30)
{
paikka = Level.GetRandomPosition();
}
} }
if (paikka.Y<70) if (paikka.Y<30)
{ {
if (paikka.Y<-70) if (paikka.Y<-30)
{ {
paikka = Level.GetRandomPosition(); paikka = Level.GetRandomPosition();
} }
} }
else else
{ {
paikka = Level.GetRandomPosition(); break;
} }
} }
Omena = new Objektit(korkeus, leveys, paikka); Omena = new Objektit(korkeus, leveys);
Omena.Shape = Shape.Circle; Omena.Shape = Shape.Circle;
Omena.Position = paikka; Omena.Position = paikka;
Omena.Image = omenakuva; Omena.Image = omenakuva;
...@@ -163,10 +161,11 @@ public class matopeli : PhysicsGame ...@@ -163,10 +161,11 @@ public class matopeli : PhysicsGame
/// </summary> /// </summary>
private PhysicsObject LuoMatoKeho(Vector Paikka) private PhysicsObject LuoMatoKeho(Vector Paikka)
{ {
MatoMuu = new Objektit(leveys, korkeus, Paikka); MatoMuu = new Objektit(leveys, korkeus);
MatoMuu.Tag = "matokeho"; MatoMuu.Tag = "matokeho";
MatoMuu.Image = matokehokuva; MatoMuu.Image = matokehokuva;
MatoMuu.Position = Paikka; MatoMuu.Position = Paikka;
MatoMuu.AngularDamping = 0.0;
MatoKeho.Add(MatoMuu); MatoKeho.Add(MatoMuu);
Add(MatoMuu); Add(MatoMuu);
return MatoMuu; return MatoMuu;
...@@ -176,6 +175,7 @@ public class matopeli : PhysicsGame ...@@ -176,6 +175,7 @@ public class matopeli : PhysicsGame
{ {
Omena.Destroy(); Omena.Destroy();
OmenaKentalla = false; OmenaKentalla = false;
LuoMatoKeho(MatoSijainti[MatoSijainti.Count-MatoKeho.Count-1]);
} }
private void VaihdaSuuntaYlos() private void VaihdaSuuntaYlos()
...@@ -255,7 +255,7 @@ public class matopeli : PhysicsGame ...@@ -255,7 +255,7 @@ public class matopeli : PhysicsGame
private void LuoAikalaskuri() private void LuoAikalaskuri()
{ {
Timer aikalaskuri = new Timer(); Timer aikalaskuri = new Timer();
aikalaskuri.Interval = 0.11; aikalaskuri.Interval = 0.1;
aikalaskuri.Timeout += PaivitaKentta; aikalaskuri.Timeout += PaivitaKentta;
aikalaskuri.Start(); aikalaskuri.Start();
} }
...@@ -269,19 +269,19 @@ public class matopeli : PhysicsGame ...@@ -269,19 +269,19 @@ public class matopeli : PhysicsGame
//Tämän on tarkoitus liikuttaa matoa, aina, kun se saapuu tasalukuun. //Tämän on tarkoitus liikuttaa matoa, aina, kun se saapuu tasalukuun.
//tavoitteena oli,että mato ei liikkuisi, jos se on ruudun puolivälissä //tavoitteena oli,että mato ei liikkuisi, jos se on ruudun puolivälissä
MatoSijainti.Add(Mato.Position);
LiikutaMatoa();
if (OmenaKentalla == false) if (OmenaKentalla == false)
{ {
LuoMatoKeho(MatoSijainti[MatoSijainti.Count-MatoKeho.Count-1]);
LuoOmena(); LuoOmena();
} }
LiikutaMatoa();
if (MatoKeho.Count>0)
{
LiikutaKehoa();
}
} }
...@@ -289,35 +289,52 @@ public class matopeli : PhysicsGame ...@@ -289,35 +289,52 @@ public class matopeli : PhysicsGame
{ {
if (SuuntaYlos==true) if (SuuntaYlos==true)
{ {
Mato.Y = Mato.Y + leveys; Mato.Y = Mato.Y + leveys+5;
Mato.Angle = Angle.FromDegrees(90); Mato.Angle = Angle.FromDegrees(90);
} }
if (SuuntaAlas==true) if (SuuntaAlas==true)
{ {
Mato.Y= Mato.Y - leveys; Mato.Y= Mato.Y - leveys+5;
Mato.Angle = Angle.FromDegrees(270); Mato.Angle = Angle.FromDegrees(270);
} }
if (SuuntaOikea==true) if (SuuntaOikea==true)
{ {
Mato.X= Mato.X + leveys; Mato.X= Mato.X + leveys+5;
Mato.Angle = Angle.FromDegrees(0); Mato.Angle = Angle.FromDegrees(0);
} }
if (SuuntaVasen==true) if (SuuntaVasen==true)
{ {
Mato.X= Mato.X - leveys; Mato.X= Mato.X - leveys+5;
Mato.Angle = Angle.FromDegrees(180); Mato.Angle = Angle.FromDegrees(180);
} }
MatoSijainti.Add(Mato.Position);
} }
/// <summary> /// <summary>
/// Tehdään silmukka, joka käy madon kaikki sijainnit ja liikuttaa madon muut osat niiden mukaan. /// Tehdään silmukka, joka käy madon kaikki sijainnit ja liikuttaa madon muut osat niiden mukaan.
/// </summary> /// </summary>
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++)
{
MatoKeho[i].X = MatoKeho[i - 1].X;
MatoKeho[i].Y = MatoKeho[i - 1].Y;
}
}
public class Objektit : PhysicsObject public class Objektit : PhysicsObject
{ {
public Objektit(double leveys, double korkeus, Vector paikka) public Objektit(double leveys, double korkeus)
: base(leveys, korkeus) : base(leveys, korkeus)
{ {
Mass = 10000; Mass = 10000;
......
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