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

Lisäsin asetus -aliohjelman, josta voi vaihtaa pelin ominaisuuksia, seuraavana...

Lisäsin asetus -aliohjelman, josta voi vaihtaa pelin ominaisuuksia, seuraavana pitäisi saada jotenkin aloitettua peli alusta.
parent 53da685c
No related branches found
No related tags found
No related merge requests found
...@@ -18,12 +18,12 @@ public class matopeli : PhysicsGame ...@@ -18,12 +18,12 @@ public class matopeli : PhysicsGame
{ {
private static readonly string[] tasonkuva = { private static readonly string[] tasonkuva = {
"#####################", "#####################",
"#o #",
"# #", "# #",
"# #", "# #",
"# #", "# #",
"# #", "# #",
"# #", "# #",
"# o #",
"# #", "# #",
"# #", "# #",
"# #", "# #",
...@@ -39,52 +39,54 @@ public class matopeli : PhysicsGame ...@@ -39,52 +39,54 @@ public class matopeli : PhysicsGame
private Objektit Mato; private Objektit Mato;
private Objektit Omena; private Objektit Omena;
private Objektit MatoMuu; private Objektit MatoMuu;
private Timer aikalaskuri; private Timer aikalaskuri;
public IntMeter pistelaskuri;
public List<Vector> MatoSijainti = new List<Vector>(); public List<Vector> MatoSijainti = new List<Vector>();
public List<PhysicsObject> MatoKeho = new List<PhysicsObject>(); public List<PhysicsObject> MatoKeho = new List<PhysicsObject>();
public int leveys = 40; public int leveys;
public int korkeus = 40; public int korkeus;
public double Nopeus;
private static readonly Image seinakuva = LoadImage("seina.png"); private static readonly Image seinakuva = LoadImage("seina.png");
private static readonly Image matopaakuva = LoadImage("matopaa.png"); private static readonly Image matopaakuva = LoadImage("matopaa.png");
private readonly Image matokehokuva = LoadImage("matokeho.png"); private readonly Image matokehokuva = LoadImage("matokeho.png");
private readonly Image omenakuva = LoadImage("omena.png"); private readonly Image omenakuva = LoadImage("omena.png");
private readonly Image kenttatausta = LoadImage("kenttatausta.png");
private bool SuuntaYlos = false; private bool SuuntaYlos;
private bool SuuntaAlas = false; private bool SuuntaAlas;
private bool SuuntaOikea = false; private bool SuuntaOikea;
private bool SuuntaVasen = false; private bool SuuntaVasen;
private bool MatoLiikkunut = true; private bool MatoLiikkunut;
private bool GameOver = false; private bool GameOver;
private bool OmenaKentalla = true; private bool OmenaKentalla = true;
public override void Begin() public override void Begin()
{ {
// Kirjoita ohjelmakoodisi tähän
PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
ClearAll();
AloitaUusiPeli(); AloitaUusiPeli();
} }
public void AloitaUusiPeli() public void AloitaUusiPeli()
{ {
ClearAll(); Asetukset();
TileMap tiles = TileMap.FromStringArray(tasonkuva); TileMap tiles = TileMap.FromStringArray(tasonkuva);
tiles['#'] = LuoSeina; tiles['#'] = LuoSeina;
tiles['o'] = LuoMato; tiles['o'] = LuoMato;
tiles.Insert(leveys,korkeus); tiles.Insert(leveys,korkeus); ;
SuuntaAlas = true;
Asetaohjaimet(); Asetaohjaimet();
LuoAikalaskuri(); LuoAikalaskuri();
LuoPistelaskuri();
LuoOmena(); LuoOmena();
} }
private void Asetaohjaimet() private void Asetaohjaimet()
{ {
...@@ -92,15 +94,44 @@ public class matopeli : PhysicsGame ...@@ -92,15 +94,44 @@ public class matopeli : PhysicsGame
Keyboard.Listen(Key.Down, ButtonState.Pressed, VaihdaSuuntaAlas, "Turn downwards"); Keyboard.Listen(Key.Down, ButtonState.Pressed, VaihdaSuuntaAlas, "Turn downwards");
Keyboard.Listen(Key.Left, ButtonState.Pressed, VaihdaSuuntaVasen , "Turn left"); Keyboard.Listen(Key.Left, ButtonState.Pressed, VaihdaSuuntaVasen , "Turn left");
Keyboard.Listen(Key.Right, ButtonState.Pressed, VaihdaSuuntaOikea, "Turn right"); Keyboard.Listen(Key.Right, ButtonState.Pressed, VaihdaSuuntaOikea, "Turn right");
Keyboard.Listen(Key.Enter, ButtonState.Pressed, Begin, "New Game");
}
void LuoPistelaskuri()
{
pistelaskuri = new IntMeter(0);
Label pistenaytto = new Label();
pistenaytto.X = Screen.Left + 500;
pistenaytto.Y = Screen.Top - 10;
pistenaytto.TextColor = Color.Black;
pistenaytto.Color = Color.White;
pistenaytto.BindTo(pistelaskuri);
Add(pistenaytto);
} }
private void Asetukset()
{
leveys = 40;
korkeus = 40;
SuuntaYlos = false;
SuuntaAlas = true;
SuuntaOikea = false;
SuuntaVasen = false;
Nopeus = 0.1;
MatoLiikkunut = true;
GameOver= false;
}
private void MatoKuolee() private void MatoKuolee()
{ {
GameOver = true; GameOver = true;
} }
private PhysicsObject LuoMato() private PhysicsObject LuoMato()
{ {
Mato = new Objektit(leveys, korkeus); Mato = new Objektit(leveys-5, korkeus-5);
Mato.Image = matopaakuva; Mato.Image = matopaakuva;
Add(Mato); Add(Mato);
Mato.Tag = "mato"; Mato.Tag = "mato";
...@@ -121,17 +152,19 @@ public class matopeli : PhysicsGame ...@@ -121,17 +152,19 @@ public class matopeli : PhysicsGame
int x = 0; int x = 0;
int y = 0; int y = 0;
///Tarkistetaan ensin, ettei omena mene madon kehon kanssa päällekkäin
for (int i = 0; i < MatoKeho.Count - 1; i++) for (int i = 0; i < MatoKeho.Count - 1; i++)
{ {
x = RandomGen.NextInt(-300, 300); x = RandomGen.NextInt(-320, 320);
y = RandomGen.NextInt(-300, 300); y = RandomGen.NextInt(-320, 320);
if (x - MatoKeho[i].X < 4) if (x - MatoKeho[i].X < 4)
{ {
if (y - MatoKeho[i].Y < 4) if (y - MatoKeho[i].Y < 4)
{ {
x = RandomGen.NextInt(-300, 300); x = RandomGen.NextInt(-320, 320);
y = RandomGen.NextInt(-300, 300); y = RandomGen.NextInt(-320, 320);
} }
} }
} }
...@@ -149,7 +182,7 @@ public class matopeli : PhysicsGame ...@@ -149,7 +182,7 @@ public class matopeli : PhysicsGame
Vector paikka = new Vector(x, y); Vector paikka = new Vector(x, y);
Omena = new Objektit(korkeus, leveys); Omena = new Objektit(korkeus-10, leveys-10);
Omena.Shape = Shape.Circle; Omena.Shape = Shape.Circle;
Omena.Position = paikka; Omena.Position = paikka;
Omena.Image = omenakuva; Omena.Image = omenakuva;
...@@ -161,6 +194,7 @@ public class matopeli : PhysicsGame ...@@ -161,6 +194,7 @@ public class matopeli : PhysicsGame
private PhysicsObject LuoSeina() private PhysicsObject LuoSeina()
{ {
PhysicsObject Seina = new PhysicsObject(leveys, korkeus); PhysicsObject Seina = new PhysicsObject(leveys, korkeus);
Seina.MakeStatic();
Seina.Color = Color.Green; Seina.Color = Color.Green;
Seina.Image = seinakuva; Seina.Image = seinakuva;
Seina.Tag = "seina"; Seina.Tag = "seina";
...@@ -172,11 +206,10 @@ public class matopeli : PhysicsGame ...@@ -172,11 +206,10 @@ public class matopeli : PhysicsGame
/// </summary> /// </summary>
public PhysicsObject LuoMatoKeho() public PhysicsObject LuoMatoKeho()
{ {
MatoMuu = new Objektit(leveys-4, korkeus-4); MatoMuu = new Objektit(leveys-6, korkeus-6);
MatoMuu.Tag = "matokeho"; MatoMuu.Tag = "matokeho";
MatoMuu.Image = matokehokuva; MatoMuu.Image = matokehokuva;
Vector Paikka = MatoSijainti[MatoSijainti.Count - 1 - MatoKeho.Count]; Vector Paikka = MatoSijainti[MatoSijainti.Count -1 - MatoKeho.Count];
MatoMuu.IgnoresCollisionResponse = true;
MatoMuu.Position = Paikka; MatoMuu.Position = Paikka;
Add(MatoMuu); Add(MatoMuu);
MatoKeho.Add(MatoMuu); MatoKeho.Add(MatoMuu);
...@@ -189,6 +222,7 @@ public class matopeli : PhysicsGame ...@@ -189,6 +222,7 @@ public class matopeli : PhysicsGame
private void MatoSyoOmenan() private void MatoSyoOmenan()
{ {
Omena.Destroy(); Omena.Destroy();
pistelaskuri.Value += 1;
OmenaKentalla = false; OmenaKentalla = false;
} }
...@@ -269,7 +303,7 @@ public class matopeli : PhysicsGame ...@@ -269,7 +303,7 @@ public class matopeli : PhysicsGame
private void LuoAikalaskuri() private void LuoAikalaskuri()
{ {
Timer aikalaskuri = new Timer(); Timer aikalaskuri = new Timer();
aikalaskuri.Interval = 0.1; aikalaskuri.Interval=Nopeus;
aikalaskuri.Start(); aikalaskuri.Start();
aikalaskuri.Timeout += PaivitaKentta; aikalaskuri.Timeout += PaivitaKentta;
} }
...@@ -375,11 +409,9 @@ public class matopeli : PhysicsGame ...@@ -375,11 +409,9 @@ public class matopeli : PhysicsGame
{ {
Mass = 1000; Mass = 1000;
IsUpdated = true; IsUpdated = true;
IgnoresCollisionResponse = 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