Skip to content
Snippets Groups Projects
Commit 15a2f477 authored by Klemettinen Veera Eveliina's avatar Klemettinen Veera Eveliina
Browse files

muutoksia ohjelmaan

parent c39321bc
No related branches found
No related tags found
No related merge requests found
......@@ -37,6 +37,8 @@ public class Suunnistuspeli : PhysicsGame
private static readonly int tileWidth = 700 / lines[0].Length;
private static readonly int tileHeight = 480 / lines.Length;
ScoreList topLista = new ScoreList(10, false, 0);
Image olionKuva = LoadImage("rasti.png");
Image puu = LoadImage("puu2.png");
Image bear = LoadImage("bear.png");
......@@ -48,8 +50,35 @@ public class Suunnistuspeli : PhysicsGame
{
LuoKentta();
AsetaOhjaimet();
Pause();
MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko",
"Aloita peli", "Parhaat pisteet", "Lopeta");
alkuValikko.Color = Color.LightGreen;
alkuValikko.SetButtonTextColor(Color.Orange);
Add(alkuValikko);
topLista = DataStorage.TryLoad<ScoreList>(topLista, "pisteet.xml");
alkuValikko.AddItemHandler(0, Pause);
alkuValikko.AddItemHandler(1, ParhaatPisteet);
alkuValikko.AddItemHandler(2, Exit);
void ParhaatPisteet()
{
HighScoreWindow topIkkuna = new HighScoreWindow(
"Parhaat pisteet",
topLista);
topIkkuna.Closed += TallennaPisteet;
Add(topIkkuna);
}
void TallennaPisteet(Window sender)
{
DataStorage.Save<ScoreList>(topLista, "pisteet.xml");
}
}
void LuoKentta()
{
//Gravity = new Vector(0, -981);
......@@ -63,9 +92,10 @@ public class Suunnistuspeli : PhysicsGame
tiles.Execute(tileWidth, tileHeight);
LuoPistelaskuri();
LuoPistelaskuri();
LuoAikaLaskuri();
Level.CreateBorders();
Camera.ZoomToLevel();
......@@ -122,14 +152,27 @@ public class Suunnistuspeli : PhysicsGame
/// <param name="karhu">Törmäyksen kohde</param>
void PelaajatTormaavat(PhysicsObject suunnistaja, PhysicsObject karhu)
{
Label tekstikentta = new Label(500.0, 20.0, "Peli päättyi!");
Label tekstikentta = new Label(500.0, 20.0, "Hävisit pelin!");
tekstikentta.TextColor = Color.Green;
Vector keskipiste = new Vector();
tekstikentta.Position = keskipiste;
Add(tekstikentta);
suunnistaja.Destroy();
//AloitaAlusta();
YesNoWindow uusipeli = new YesNoWindow("Hävisit pelin! Haluatko aloittaa uuden pelin?");
Add(uusipeli);
uusipeli.Yes += UusiPeli;
uusipeli.No += LopetaPeli;
void UusiPeli()
{
AloitaAlusta();
}
void LopetaPeli()
{
Exit();
}
}
......@@ -140,14 +183,40 @@ public class Suunnistuspeli : PhysicsGame
AsetaOhjaimet();
}
public void LuoAikaLaskuri()
{
Timer aikaLaskuri = new Timer();
aikaLaskuri.Start();
Label aikaNaytto = new Label();
aikaNaytto.X = Screen.Right - 100;
aikaNaytto.Y = Screen.Top - 150;
aikaNaytto.TextColor = Color.Black;
aikaNaytto.DecimalPlaces = 1;
aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
Add(aikaNaytto);
}
/// <summary>
/// Pistelaskurin luominen
/// </summary>
IntMeter pisteLaskuri;
void LuoPistelaskuri()
{
Timer aikaLaskuri = new Timer();
aikaLaskuri.Start();
Label aikaNaytto = new Label();
aikaNaytto.X = Screen.Right - 100;
aikaNaytto.Y = Screen.Top - 150;
aikaNaytto.TextColor = Color.Black;
aikaNaytto.DecimalPlaces = 1;
aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
Add(aikaNaytto);
pisteLaskuri = new IntMeter(0);
Label pisteNaytto = new Label();
......@@ -163,18 +232,66 @@ public class Suunnistuspeli : PhysicsGame
pisteNaytto.BindTo(pisteLaskuri);
Add(pisteNaytto);
}
/// <summary>
/// Ajanotto pysähtyy, kun suunnistaja saa rastit kerättyä.
/// </summary>
/// <summary>
/// Näytölle tulostuva teksti, kun suunnistaja saa rastit kerättyä.
/// </summary>
void KaikkiKeratty()
{
MessageDisplay.Add("Suunnistaja voitti pelin.");
void KaikkiKeratty()
{
aikaLaskuri.Stop();
Pause();
HighScoreWindow topIkkuna = new HighScoreWindow(
"Parhaat pisteet",
"Onneksi olkoon, pääsit listalle pisteillä %p! Syötä nimesi:",
topLista, aikaLaskuri.CurrentTime);
topIkkuna.NameInputWindow.Message.Text = "Onneksi olkoon! Aikasi oli {0:0.0}s. Syötä nimesi:";
topIkkuna.Color = Color.LightGreen;
topIkkuna.NameInputWindow.Message.Color = Color.LightGreen;
topIkkuna.List.ScoreFormat = "{0:0.0}";
topIkkuna.Closed += TallennaPisteet;
topIkkuna.Closed += AloitaUudelleen;
Add(topIkkuna);
void AloitaUudelleen(Window sender)
{
YesNoWindow uusikierros = new YesNoWindow("Haluatko aloittaa uuden pelin?");
Add(uusikierros);
uusikierros.Yes += UusiPeli;
uusikierros.No += LopetaPeli;
void UusiPeli()
{
AloitaAlusta();
}
void LopetaPeli()
{
Exit();
}
void AloitaAlusta()
{
ClearAll();
LuoKentta();
AsetaOhjaimet();
}
}
void TallennaPisteet(Window sender)
{
DataStorage.Save<ScoreList>(topLista, "pisteet.xml");
}
}
}
/// <summary>
/// Luodaan palikka kentälle.
/// </summary>
......@@ -208,33 +325,17 @@ public class Suunnistuspeli : PhysicsGame
karhu.IgnoresPhysicsLogics = true;
karhu.CanRotate = false;
//PathFollowerBrain karhunAivot = new PathFollowerBrain();
//List<Vector> polku = new List<Vector>();
//polku.Add(new Vector(0, 0));
//polku.Add(new Vector(-100, 0));
//polku.Add(new Vector(-100, 100));
//polku.Add(new Vector(100, 100));
//polku.Add(new Vector(-100, 100));
//karhunAivot.Path = polku;
//karhunAivot.Loop = true;
//karhunAivot.Speed = 100;
const int RUUDUN_KOKO = 40;
LabyrinthWandererBrain karhunAivot = new LabyrinthWandererBrain(RUUDUN_KOKO);
karhunAivot.Speed = 100.0;
karhunAivot.LabyrinthWallTag = "rakenne";
//FollowerBrain karhunAivot = new FollowerBrain("suunnistaja");
//RandomMoverBrain karhunAivot = new RandomMoverBrain(200);
//karhunAivot.ChangeMovementSeconds = 3;
//karhunAivot.Speed = 10;
karhu.Brain = karhunAivot;
karhu.Tag = "bear";
karhu.Image = bear;
Add(karhu);
}
......
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