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

Revision 7320, 4.2 KB checked in by jotapoti, 6 years ago (diff)

valikot toimivat melkein kokonaan, pistelaskuri ja top ten luotu!

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        // TODO tee parhaiden pisteiden nayttaminen tahan
42    }
43
44    void Peliohjeet()
45    {
46        MessageWindow ikkuna = new MessageWindow("Väistele kaikkia palloja mahdollisimman kauan! Liiku nuolilla.");
47        Add(ikkuna);
48        ikkuna.Closed += delegate 
49        {
50            Alkuvalikko();
51        };
52    }
53
54    void AloitaPeli()
55    {
56        Level.Background.Color = Color.Blue;
57        pelaaja1 = new PhysicsObject(10.0, 10.0);
58        pelaaja1.X = -400.0;
59        pelaaja1.Y = 0.0;
60        Add(pelaaja1);
61        AddCollisionHandler(pelaaja1, "pahis", PelaajaOsuuPahikseen);
62
63        Level.CreateBorders(1.0, false);
64        double leveys = 50.0;
65        double korkeus = 50.0;
66
67        for (int i = 0; i < 5; i++)
68        {
69            double arvottuXkoordinaatti = RandomGen.NextDouble(Level.Left, Level.Right);
70            double arvottuYkoordinaatti = RandomGen.NextDouble(Level.Bottom, Level.Top);
71            Color arvottuVari = RandomGen.SelectOne<Color>(Color.Red, Color.White, Color.Green, Color.HotPink);
72            LuoOlio(arvottuXkoordinaatti, arvottuYkoordinaatti, leveys, korkeus, arvottuVari, Shape.Circle);
73        }
74        //LuoOlio(200.0, 200.0, leveys, korkeus, Color.Black, Shape.Circle);
75        //LuoOlio(-200.0, -200.0, leveys, korkeus, Color.Black, Shape.Circle);
76
77        //PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
78        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-1000, 0));
79        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, null, new Vector(1000, 0));
80        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 1000));
81        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -1000));
82        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
83
84        LuoAikaLaskuri();
85    }
86
87    void PelaajaOsuuPahikseen(PhysicsObject pelaaja, PhysicsObject kohde)
88    {
89        pelaaja.Destroy();
90        MessageDisplay.Add("Nyt osui!");
91
92        double aikaaKulunut = aikaLaskuri.SecondCounter.Value;
93        aikaLaskuri.Stop();
94        topLista.EnterAndShow(aikaaKulunut);
95        topLista.HighScoreWindow.Closed += delegate
96        {
97            ClearAll();
98            Alkuvalikko();
99        } ;
100    }
101   
102
103    void LiikutaPelaajaa(Vector vektori)
104    {
105        pelaaja1.Push(vektori);
106    }
107
108    void LuoOlio(double x, double y, double leveys, double korkeus, Color vari, Shape muoto)
109    {
110        PhysicsObject olio = new PhysicsObject(leveys, korkeus);
111        olio.Shape = muoto;
112        olio.Color = vari;
113        olio.X = x;
114        olio.Y = y;
115        olio.Tag = "pahis";
116        Add(olio);
117
118        FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja1);
119        //seuraajanAivot.Speed = 50.0;
120        olio.Brain = seuraajanAivot;
121       
122
123    }
124
125    void LuoAikaLaskuri()
126    {
127        aikaLaskuri = new Timer();
128        aikaLaskuri.Start();
129
130        Label aikaNaytto = new Label();
131        aikaNaytto.TextColor = Color.White;
132        aikaNaytto.DecimalPlaces = 1;
133        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
134        Add(aikaNaytto);
135    }
136}
Note: See TracBrowser for help on using the repository browser.