source: 2010/31/jumijoky/taso1/tasohyppely/tasohyppely/Peli.cs @ 1659

Revision 1659, 8.3 KB checked in by jumijoky, 9 years ago (diff)
Line 
1using System;
2using Jypeli;
3using Jypeli.Widgets;
4using Jypeli.Assets;
5using System.Collections.Generic;
6
7
8class Tasohyppely : PhysicsGame
9{
10    List<Label> valikonKohdat;
11    const double nopeus = 200;
12    const double hyppyVoima = 1500;
13
14    const int ruudunLeveys = 50;
15    const int ruudunKorkeus = 50;
16
17    IntMeter pelaajan1Pisteet;
18    int vaikeustaso = 0;
19
20
21
22
23
24
25    PlatformCharacter pelaaja1;
26
27    protected override void Begin()
28    {
29
30        Valikko();
31
32    }
33
34    void ValikossaLiikkuminen(AnalogState hiirenTila)
35    {
36        foreach (Label kohta in valikonKohdat)
37        {
38            if (Mouse.IsCursorOn(kohta))
39            {
40                kohta.TextColor = Color.Red;
41            }
42            else
43            {
44                kohta.TextColor = Color.Black;
45            }
46
47        }
48    }
49    void Valikko()
50    {
51        ClearAll();
52        valikonKohdat = new List<Label>();
53
54        Label kohta1 = new Label("easy");
55        kohta1.Position = new Vector(0, 60);
56        valikonKohdat.Add(kohta1);
57
58        Label kohta3 = new Label("medium");
59        kohta3.Position = new Vector(0, 20);
60        valikonKohdat.Add(kohta3);
61
62        Label kohta4 = new Label("impossible");
63        kohta4.Position = new Vector(0, -20);
64        valikonKohdat.Add(kohta4);
65       
66        Label kohta2 = new Label("Lopeta");
67        kohta2.Position = new Vector(0, -60);
68        valikonKohdat.Add(kohta2);
69
70       
71
72        foreach (Label valikonKohta in valikonKohdat)
73        {
74            Add(valikonKohta);
75        }
76
77        Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, easy, null);
78        Mouse.ListenOn(kohta2, MouseButton.Left, ButtonState.Pressed, Exit, null);
79        Mouse.ListenOn(kohta3, MouseButton.Left, ButtonState.Pressed, medium, null);
80        Mouse.ListenOn(kohta4, MouseButton.Left, ButtonState.Pressed, impossible, null);
81       
82
83        Mouse.IsCursorVisible = true;
84        Mouse.ListenMovement(1.0, ValikossaLiikkuminen, null);
85        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "");
86    }
87    void medium()
88    {
89        AloitaPeli(20);
90        vaikeustaso = 20;
91    }
92
93    void easy()
94    {
95        AloitaPeli(10);
96        vaikeustaso = 10;
97    }
98    void impossible()
99    {
100        AloitaPeli(30);
101        vaikeustaso = 30;
102    }
103   
104   
105   
106    void AloitaPeli(int maxPalloja)
107    {
108       
109        ClearAll();
110        Gravity = new Vector(0, -1000);
111        LuoPallo(RandomGen.NextDouble(Level.Left, Level.Right), RandomGen.NextDouble(Level.Bottom, Level.Top), RandomGen.NextColor());
112        LuoKentta();
113        lisaaNappaimet();
114        LisaaLaskurit();
115        //lisaaPelaajat();
116        Camera.Follow(pelaaja1);
117        Camera.ZoomFactor = -500;
118
119        Camera.StayInLevel = true;
120
121        for (int laskuri = 0; laskuri < maxPalloja; laskuri++)
122        {
123            LuoPallo(RandomGen.NextDouble(Level.Left, Level.Right), RandomGen.NextDouble(Level.Bottom, Level.Top), RandomGen.NextColor());
124            Keyboard.Listen(Key.Escape, ButtonState.Pressed, Valikko, "Palaa valikkoon");
125        }
126    }
127
128    void LuoKentta()
129    {
130        TileMap ruudut = TileMap.FromFile("kentta.txt");
131        ruudut['='] = LuoPalikka;
132
133        ruudut['1'] = LuoPelaaja1;
134        ruudut['!'] = LuoTahti;
135        ruudut.Insert(ruudunLeveys, ruudunKorkeus);
136        Level.Background.Image = LoadImage("tausta");
137        Level.Background.FitToLevel();
138    }
139
140    PhysicsObject LuoPalikka()
141    {
142        PhysicsObject palikka = PhysicsObject.CreateStaticObject(50.0, 50.0);
143        palikka.Image = LoadImage("seina");
144        return palikka;
145    }
146
147    PhysicsObject LuoPelaaja1()
148    {
149        pelaaja1 = new PlatformCharacter(40.0, 50.0);
150        pelaaja1.Image = LoadImage("Ukko Vasen");
151        pelaaja1.X = 0;
152        pelaaja1.Y = Level.Bottom + 120;
153        pelaaja1.Tag = "pelaaja1";
154        AddCollisionHandler(pelaaja1, KasittelePelaajanTormays);
155        return pelaaja1;
156    }
157
158
159    PhysicsObject LuoTahti()
160    {
161        PhysicsObject tahti = PhysicsObject.CreateStaticObject(50.0, 50.0);
162        tahti.Image = LoadImage("tahti");
163        tahti.Tag = "tahti";
164        return tahti;
165    }
166
167    void KasittelePelaajanTormays(PhysicsObject pelaaja1, PhysicsObject kohde)
168    {
169        if (kohde.Tag.ToString() == "tahti")
170        {
171            pelaajan1Pisteet.Value += 1;
172            kohde.Destroy();
173            if (pelaajan1Pisteet.Value == 4) PeliLapi();
174           
175
176        }
177        if (kohde.Tag.ToString() == "pallo")
178        {
179            pelaaja1.Destroy();
180            Pelihavitty();
181
182
183
184           
185        }
186    }
187
188    void LisaaLaskurit()
189    {
190        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0);
191
192    }
193
194    IntMeter LuoPisteLaskuri(double x, double y)
195    {
196        IntMeter laskuri = new IntMeter(0);
197        laskuri.MaxValue = 4;
198        Label naytto = new Label();
199        naytto.BindTo(laskuri);
200        naytto.X = x;
201        naytto.Y = y;
202        naytto.TextColor = Color.Black;
203        Add(naytto);
204        return laskuri;
205    }
206
207    void lisaaNappaimet()
208    {
209        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
210        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
211
212        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
213        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
214        Keyboard.Listen(Key.NumPad0, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja1, hyppyVoima);
215
216        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
217
218        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
219        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
220        ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyVoima);
221
222        Keyboard.Listen(Key.F2, ButtonState.Pressed, aloitapelialusta, "aloita peli alusta");
223        Keyboard.Listen(Key.F3, ButtonState.Pressed, palaavalikkoon, "palaa alkuvalikkoon");
224       
225    }
226
227    void liikuta(PlatformCharacter pelaaja1, double nopeus)
228    {
229        pelaaja1.Walk(nopeus);
230    }
231
232    void hyppaa(PlatformCharacter pelaaja1, double voima)
233    {
234        pelaaja1.Jump(voima);
235    }
236
237
238    void LuoPallo(double x, double y, Color väri)
239    {
240        PhysicsObject pallo = new PhysicsObject(50.0, 50.0);
241        pallo.Shape = Shapes.Circle;
242        pallo.Position = new Vector(x, y);
243        pallo.Color = väri;
244        Add(pallo);
245        pallo.Tag = "pallo";
246        pallo.Restitution = 1.01;
247    }
248
249    void PeliLapi()
250    {
251        ClearAll();
252        Widget Pelilapi = new Widget(1400.0, 2000.0);
253        Pelilapi.Shape = Shapes.Circle;
254        Pelilapi.Position = (Screen.Center);
255        Pelilapi.Image = LoadImage("Pääsit Läpi!!");
256        Add(Pelilapi);
257        Keyboard.Listen(Key.F2, ButtonState.Pressed, aloitapelialusta, "aloita peli alusta");
258        Keyboard.Listen(Key.F3, ButtonState.Pressed, palaavalikkoon, "palaa alkuvalikkoon");
259        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "poistu");
260        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
261    }
262    void Pelihavitty()
263    {
264        ClearAll();
265        Widget Pelihavitty = new Widget(1400.0, 1000.0);
266        Pelihavitty.Shape = Shapes.Circle;
267        Pelihavitty.Position = (Screen.Center);
268        Pelihavitty.Image = LoadImage("you failed");
269        Add(Pelihavitty);
270        Keyboard.Listen(Key.F2, ButtonState.Pressed, aloitapelialusta, "aloita peli alusta");
271        Keyboard.Listen(Key.F3, ButtonState.Pressed, palaavalikkoon, "palaa alkuvalikkoon");
272        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "poistu");
273        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
274   
275    }
276    void aloitapelialusta()
277    {
278        ClearAll();
279        AloitaPeli(vaikeustaso);
280   
281    }
282    void palaavalikkoon()
283    {
284        Valikko();
285
286   
287    }
288   
289
290}
291
292
293
Note: See TracBrowser for help on using the repository browser.