source: 2011/26/OttoS/Space Race/Space Race/Space Race/Peli.cs @ 2315

Revision 2315, 4.7 KB checked in by oteeansa, 12 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Peli : PhysicsGame
10{
11    PhysicsObject UFO;
12    Image olionKuva = LoadImage("ufo");
13    Image taustaKuva = LoadImage("m101");
14    int nopeutus = 0;
15    Timer aikaLaskuri;
16    DoubleMeter alaspainLaskuri;
17
18    List<Label> valikonKohdat;
19    Timer ajastin;
20
21
22    public override void Begin()
23    {
24        Valikko();
25        //ValikossaLiikkuminen();
26        //AsetaOhjaimet();
27        //LuoAikaLaskuri();
28    }
29
30    void LuoSatunnainenEste(Timer sender)
31    {
32        double y = RandomGen.NextDouble(Level.Bottom, Level.Top);
33        PhysicsObject Este = PhysicsObject.CreateStaticObject(35.0, 300.0);
34        Add(Este);
35        Este.Tag = "este";
36        Este.X = Level.Left + RandomGen.NextDouble(800, 1200);
37        Este.Y = y;
38        Este.Color = Color.Black;
39        Este.Velocity = new Vector(-250 - (RandomGen.NextDouble(nopeutus/2, nopeutus)), 0.0);
40
41        nopeutus += 9;
42    }
43
44    void AsetaOhjaimet()
45    {
46        Keyboard.Listen(Key.Escape, ButtonState.Released, Exit, null);
47        Keyboard.Listen(Key.Up, ButtonState.Down,
48          LiikutaUFO, null, new Vector(0, 1000));
49        Keyboard.Listen(Key.Down, ButtonState.Down,
50          LiikutaUFO, null, new Vector(0, -1000));
51
52    }
53
54    void LiikutaUFO(Vector vektori)
55    {
56        UFO.Push(vektori);
57
58    }
59    void LuoRajahdys()
60    {
61        ExplosionSystem rajahdys =
62        new ExplosionSystem(LoadImage("123"), 200);
63        rajahdys.Color = Color.Transparent;
64        Add(rajahdys);
65        double x = 0;
66        double y = 0;
67        int pMaara = 50;
68        rajahdys.AddEffect(UFO.X, UFO.Y, pMaara);
69        UFO.Destroy();
70    }
71
72    void KasitteleUfonTormays(PhysicsObject UFO, PhysicsObject kohde)
73    {
74            LuoRajahdys();
75    }
76
77    void LuoAikaLaskuri()
78    {
79        alaspainLaskuri = new DoubleMeter(0);
80
81        Timer aikaLaskuri = new Timer();
82        aikaLaskuri.Interval = 0.1;
83        aikaLaskuri.Trigger += LaskeAlaspain;
84        aikaLaskuri.Start();
85
86        Label aikaNaytto = new Label();
87        aikaNaytto.TextColor = Color.White;
88        aikaNaytto.DecimalPlaces = 1;
89        aikaNaytto.BindTo(alaspainLaskuri);
90        Add(aikaNaytto);
91        aikaNaytto.X = 500;
92        aikaNaytto.Y = 450;
93    }
94
95    void LaskeAlaspain(Timer timer)
96    {
97        alaspainLaskuri.Value += 2;
98
99    }
100
101    void Palaavalikkoon()
102    {
103        ajastin.Stop();
104        Valikko();
105    }
106
107    void AloitaPeli()
108    {
109        ClearAll();
110        // Tähän tulee kaikki kentän luomiset ym. alustukset...
111        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Palaavalikkoon, "Palaa valikkoon");
112        AsetaOhjaimet();
113        LuoAikaLaskuri();
114
115        UFO = new PhysicsObject(30.0, 30.0);
116        Add(UFO);
117        UFO.Image = olionKuva;
118        UFO.X = Level.Left + 250;
119        UFO.Y = 0.0;
120        UFO.IgnoresCollisionResponse = true;
121
122        Vector impulssi = new Vector(500.0, 0.0);
123        UFO.Restitution = 1.0;
124        Level.BackgroundColor = Color.White;
125        Camera.ZoomToLevel();
126        Level.Background.Image = taustaKuva;
127        Level.CreateBorders(true);
128
129        ajastin = new Timer();
130        ajastin.Interval = 1.5;
131        ajastin.Trigger += LuoSatunnainenEste;
132        ajastin.Start();
133        AddCollisionHandler(UFO, KasitteleUfonTormays);
134
135        PhysicsObject ylareuna = Level.CreateTopBorder();
136 
137    }
138
139    void Valikko()
140    {
141        ClearAll();
142        valikonKohdat = new List<Label>();
143
144        Label kohta1 = new Label("Aloita uusi peli");
145        kohta1.Position = new Vector(0, 40);
146        valikonKohdat.Add(kohta1);
147
148        Label kohta2 = new Label("Lopeta");
149        kohta2.Position = new Vector(0, -40);
150        valikonKohdat.Add(kohta2);
151
152        foreach (Label valikonKohta in valikonKohdat)
153        {
154            Add(valikonKohta);
155        }
156
157        Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, AloitaPeli, null);
158        Mouse.ListenOn(kohta2, MouseButton.Left, ButtonState.Pressed, Exit, null);
159
160        Mouse.IsCursorVisible = true;
161        //Mouse.ListenMovement(1.0, ValikossaLiikkuminen, null);
162        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "");
163    }
164
165    /*
166    void ValikossaLiikkuminen(AnalogState hiirenTila)
167    {
168        foreach (Label kohta in valikonKohdat)
169        {
170            if (Mouse.IsCursorOn(kohta))
171            {
172                kohta.TextColor = Color.Red;
173            }
174            else
175            {
176                kohta.TextColor = Color.Black;
177            }
178
179        }
180    }
181     * */
182
183   
184
185
186
187
188
189}
190
Note: See TracBrowser for help on using the repository browser.