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