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

Revision 7351, 4.6 KB checked in by jotapoti, 3 years ago (diff)

2s valein tulee uusi vihollinen keskelle ruutua

RevLine 
[7283]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;
[7320]12    Timer aikaLaskuri;
13    EasyHighScore topLista = new EasyHighScore();
14
[7283]15    public override void Begin()
16    {
[7320]17       
[7319]18        Alkuvalikko();
19    }
20
21    void Alkuvalikko()
22    {
[7320]23        Level.Background.Color = Color.Black;
[7319]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
[7320]34        alkuvalikko.DefaultCancel = 3;
35        alkuvalikko.Color = Color.Red;
36        alkuvalikko.SetButtonColor(Color.AshGray);
[7319]37    }
38
39    void ParhaatPisteet()
40    {
[7321]41        topLista.Show();
42        // TODO korjaa, että palaa takaisin alkuvalikkoon, kun tämä topLista suljetaan
[7319]43    }
44
45    void Peliohjeet()
46    {
[7320]47        MessageWindow ikkuna = new MessageWindow("Väistele kaikkia palloja mahdollisimman kauan! Liiku nuolilla.");
48        Add(ikkuna);
49        ikkuna.Closed += delegate 
50        {
51            Alkuvalikko();
52        };
[7319]53    }
54
55    void AloitaPeli()
56    {
[7320]57        Level.Background.Color = Color.Blue;
[7283]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);
[7314]65        double leveys = 50.0;
66        double korkeus = 50.0;
[7283]67
[7319]68        for (int i = 0; i < 5; i++)
[7315]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);
[7283]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");
[7320]84
85        LuoAikaLaskuri();
[7351]86        LuoVihollistenluontilaskuri();
[7283]87    }
88
[7351]89    void LuoVihollistenluontilaskuri()
90    {
91        Timer luontiajastin = new Timer();
92        luontiajastin.Interval = 2.0;
93        luontiajastin.Timeout += delegate
94        {
95            LuoOlio(0.0, 0.0, 50.0, 50.0, Color.Red, Shape.Circle);
96        };
97        luontiajastin.Start();
98    }
99
[7283]100    void PelaajaOsuuPahikseen(PhysicsObject pelaaja, PhysicsObject kohde)
101    {
102        pelaaja.Destroy();
103        MessageDisplay.Add("Nyt osui!");
[7320]104
105        double aikaaKulunut = aikaLaskuri.SecondCounter.Value;
106        aikaLaskuri.Stop();
107        topLista.EnterAndShow(aikaaKulunut);
108        topLista.HighScoreWindow.Closed += delegate
109        {
110            ClearAll();
111            Alkuvalikko();
112        } ;
[7283]113    }
114   
115
116    void LiikutaPelaajaa(Vector vektori)
117    {
118        pelaaja1.Push(vektori);
119    }
120
121    void LuoOlio(double x, double y, double leveys, double korkeus, Color vari, Shape muoto)
122    {
123        PhysicsObject olio = new PhysicsObject(leveys, korkeus);
124        olio.Shape = muoto;
125        olio.Color = vari;
126        olio.X = x;
127        olio.Y = y;
128        olio.Tag = "pahis";
129        Add(olio);
130
131        FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja1);
[7315]132        //seuraajanAivot.Speed = 50.0;
[7283]133        olio.Brain = seuraajanAivot;
[7315]134       
[7283]135
136    }
[7320]137
138    void LuoAikaLaskuri()
139    {
140        aikaLaskuri = new Timer();
141        aikaLaskuri.Start();
142
143        Label aikaNaytto = new Label();
144        aikaNaytto.TextColor = Color.White;
145        aikaNaytto.DecimalPlaces = 1;
146        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
147        Add(aikaNaytto);
148    }
[7283]149}
Note: See TracBrowser for help on using the repository browser.