source: 2016/24/JouniP/Tormailijat/Tormailijat/Tormailijat/Tormailijat.cs @ 7321

Revision 7321, 4.3 KB checked in by jotapoti, 3 years ago (diff)

Toplistan nayttaminen valikossa toimii osittain - kun sen sulkee, ei palaa takaisin alkuvalikkoon :(

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Tormailijat : PhysicsGame
10{
11    PhysicsObject pelaaja1;
12    Timer aikaLaskuri;
13    EasyHighScore topLista = new EasyHighScore();
14
15    public override void Begin()
16    {
17       
18        Alkuvalikko();
19    }
20
21    void Alkuvalikko()
22    {
23        Level.Background.Color = Color.Black;
24        // koodi jolla alkuvalikko luodaan
25        MultiSelectWindow alkuvalikko = new MultiSelectWindow("Pelin alkuvalikko",
26"Aloita peli", "Parhaat pisteet", "Peliohjeet", "Lopeta");
27        Add(alkuvalikko);
28
29        alkuvalikko.AddItemHandler(0, AloitaPeli);
30        alkuvalikko.AddItemHandler(1, ParhaatPisteet);
31        alkuvalikko.AddItemHandler(2, Peliohjeet);
32        alkuvalikko.AddItemHandler(3, Exit);
33
34        alkuvalikko.DefaultCancel = 3;
35        alkuvalikko.Color = Color.Red;
36        alkuvalikko.SetButtonColor(Color.AshGray);
37    }
38
39    void ParhaatPisteet()
40    {
41        topLista.Show();
42        // TODO korjaa, että palaa takaisin alkuvalikkoon, kun tämä topLista suljetaan
43    }
44
45    void Peliohjeet()
46    {
47        MessageWindow ikkuna = new MessageWindow("Väistele kaikkia palloja mahdollisimman kauan! Liiku nuolilla.");
48        Add(ikkuna);
49        ikkuna.Closed += delegate 
50        {
51            Alkuvalikko();
52        };
53    }
54
55    void AloitaPeli()
56    {
57        Level.Background.Color = Color.Blue;
58        pelaaja1 = new PhysicsObject(10.0, 10.0);
59        pelaaja1.X = -400.0;
60        pelaaja1.Y = 0.0;
61        Add(pelaaja1);
62        AddCollisionHandler(pelaaja1, "pahis", PelaajaOsuuPahikseen);
63
64        Level.CreateBorders(1.0, false);
65        double leveys = 50.0;
66        double korkeus = 50.0;
67
68        for (int i = 0; i < 5; i++)
69        {
70            double arvottuXkoordinaatti = RandomGen.NextDouble(Level.Left, Level.Right);
71            double arvottuYkoordinaatti = RandomGen.NextDouble(Level.Bottom, Level.Top);
72            Color arvottuVari = RandomGen.SelectOne<Color>(Color.Red, Color.White, Color.Green, Color.HotPink);
73            LuoOlio(arvottuXkoordinaatti, arvottuYkoordinaatti, leveys, korkeus, arvottuVari, Shape.Circle);
74        }
75        //LuoOlio(200.0, 200.0, leveys, korkeus, Color.Black, Shape.Circle);
76        //LuoOlio(-200.0, -200.0, leveys, korkeus, Color.Black, Shape.Circle);
77
78        //PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
79        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-1000, 0));
80        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, null, new Vector(1000, 0));
81        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 1000));
82        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -1000));
83        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
84
85        LuoAikaLaskuri();
86    }
87
88    void PelaajaOsuuPahikseen(PhysicsObject pelaaja, PhysicsObject kohde)
89    {
90        pelaaja.Destroy();
91        MessageDisplay.Add("Nyt osui!");
92
93        double aikaaKulunut = aikaLaskuri.SecondCounter.Value;
94        aikaLaskuri.Stop();
95        topLista.EnterAndShow(aikaaKulunut);
96        topLista.HighScoreWindow.Closed += delegate
97        {
98            ClearAll();
99            Alkuvalikko();
100        } ;
101    }
102   
103
104    void LiikutaPelaajaa(Vector vektori)
105    {
106        pelaaja1.Push(vektori);
107    }
108
109    void LuoOlio(double x, double y, double leveys, double korkeus, Color vari, Shape muoto)
110    {
111        PhysicsObject olio = new PhysicsObject(leveys, korkeus);
112        olio.Shape = muoto;
113        olio.Color = vari;
114        olio.X = x;
115        olio.Y = y;
116        olio.Tag = "pahis";
117        Add(olio);
118
119        FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja1);
120        //seuraajanAivot.Speed = 50.0;
121        olio.Brain = seuraajanAivot;
122       
123
124    }
125
126    void LuoAikaLaskuri()
127    {
128        aikaLaskuri = new Timer();
129        aikaLaskuri.Start();
130
131        Label aikaNaytto = new Label();
132        aikaNaytto.TextColor = Color.White;
133        aikaNaytto.DecimalPlaces = 1;
134        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
135        Add(aikaNaytto);
136    }
137}
Note: See TracBrowser for help on using the repository browser.