source: 2012/26/AleksanteriV/Polla ja Rosvo/Poliisi ja Rosvo/Poliisi ja Rosvo/Poliisi ja Rosvo/Poliisi_ja_Rosvo.cs @ 3554

Revision 3554, 18.4 KB checked in by alvirmas, 11 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 Poliisi_ja_Rosvo : PhysicsGame
10{
11    PhysicsObject pelaaja;
12    PhysicsObject pelaaja2;
13    PhysicsObject pelaaja3;
14    PhysicsObject pelaaja4;
15    PhysicsObject pallo;
16    Timer ajastin;
17    IntMeter pisteLaskuri;
18    Label pisteNaytto;
19    int pelaajia;
20    int pelaajienMaara;
21
22    public override void Begin()
23    {
24        ClearAll();
25        Camera.ZoomFactor = 1.0;
26        //IsFullScreen = true;
27
28        PelaajienMaaranValinta();
29    }
30
31    void PelaajienMaaranValinta()
32    {
33        MultiSelectWindow valikko1 = new MultiSelectWindow(" valitse pelaajien määrä", "2p.", "3p.", "4p.");
34        valikko1.ItemSelected += delegate(int valinta)
35        {
36            pelaajienMaara = valinta + 2; // valinta on 0 (2 pelaajaa), 1 (3 pelaajaa) tai 2 (4 pelaajaa)
37            KentanValinta();
38        };
39
40        Level.Width = Screen.Width;
41        Level.Height = Screen.Height;
42        valikko1.Color = Color.White;
43        Level.Background.Image = LoadImage("taustakuva");
44        Level.Background.FitToLevel();
45
46        Add(valikko1);
47    }
48
49    void KentanValinta()
50    {
51        MultiSelectWindow valikko;
52        if (pelaajienMaara == 2)
53        {
54            valikko = new MultiSelectWindow("2 pelaajaa", "Kenttä 1", "Kenttä 2", "Kenttä 3", "Kenttä 4", "Kenttä 5", "Kenttä 6");
55            valikko.ItemSelected += delegate(int valinta)
56            {
57                switch (valinta)
58                {
59                    case 0:
60                        AloitaPeli("kentta3");
61                        break;
62                    case 1:
63                        AloitaPeli("kentta4");
64                        break;
65                    case 2:
66                        AloitaPeli("kentta2");
67                        break;
68                    case 3:
69                        AloitaPeli("Kenttä");
70                        break;
71                    case 4:
72                        AloitaPeli("kentta6");
73                        break;
74                    case 5:
75                        AloitaPeli("kentta10");
76                        break;
77
78                }
79            };
80            valikko.Color = Color.Green;
81            Level.BackgroundColor = Color.Black;
82            Add(valikko);
83        }
84
85        if (pelaajienMaara == 3)
86        {
87            valikko = new MultiSelectWindow("3 pelaajaa", "Kenttä 1", "kenttä 2", "kentta 3");
88            valikko.ItemSelected += delegate(int valinta)
89            {
90                switch (valinta)
91                {
92                    case 0:
93                        AloitaPeli("kentta8");
94                        break;
95                    case 1:
96                        AloitaPeli("kentta12");
97                        break;
98                    case 2:
99                        AloitaPeli("kentta13");
100                        break;
101                }
102
103            };
104            valikko.Color = Color.Green;
105            Level.BackgroundColor = Color.Black;
106            Add(valikko);
107        }
108
109        if (pelaajienMaara == 4)
110        {
111            valikko = new MultiSelectWindow("4 pelaajaa", "Kenttä 1", "Kenttä 2", "Kenttä 3", "kentta 4", "jalkapalloKentta");
112            valikko.ItemSelected += delegate(int valinta)
113            {
114                switch (valinta)
115                {
116                    case 0:
117                        AloitaPeli("kentta5");
118                        break;
119                    case 1:
120                        AloitaPeli("kentta7");
121                        break;
122                    case 2:
123                        AloitaPeli("kentta9");
124                        break;
125                    case 3:
126                        AloitaPeli("kentta11");
127                        break;
128                    case 4:
129                        AloitaPeli("jalkapalloKentta");
130                        break;
131                }
132
133            };
134            valikko.Color = Color.Green;
135            Level.BackgroundColor = Color.Black;
136            Add(valikko);
137        }
138    }
139
140    void AloitaPeli(string kentanNimi)
141    {
142        luokenttä(kentanNimi);
143        lisaaohjaimet();
144        Camera.ZoomToLevel();
145        Level.CreateBorders();
146        LuoPistelaskuri();
147
148
149        MediaPlayer.Play("the benny hill show theme song");
150
151        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
152        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
153        Keyboard.Listen(Key.Space, ButtonState.Pressed, Begin, "aloita alusta");
154        //Image taustaKuva = LoadImage("moi");
155        Level.BackgroundColor = Color.DarkRed;
156        Level.Background.Image = LoadImage("moi");
157        Level.Background.ScaleToLevelFull();
158    }
159
160    void luokenttä(string kentanNimi)
161    {
162        pelaajia = 0;
163
164        ColorTileMap kentta = ColorTileMap.FromLevelAsset(kentanNimi);
165        kentta.SetTileMethod(Color.Black, LuoPalikka);
166        kentta.SetTileMethod(Color.Red, Luopelaaja);
167        kentta.SetTileMethod(new Color(0, 255, 0), Luopelaaja2);
168        kentta.SetTileMethod(Color.White, Luopelaaja3);
169        kentta.SetTileMethod(Color.Blue, Luopelaaja4);
170        kentta.SetTileMethod(Color.Gray, LuoHarmaaPalikka);
171        kentta.SetTileMethod(new Color(0, 255, 255), Luopallo);
172        kentta.SetTileMethod(new Color(255, 255, 0), LuoPallonurmiPalikka);
173        kentta.SetTileMethod(new Color(255, 0, 220), LuomaaliPalikka);
174        kentta.SetTileMethod(new Color(255, 106, 0), LuoOranssiPalikka);
175        kentta.SetTileMethod(new Color(182, 255, 0), LuoHarmaatextPalikka);
176        kentta.SetTileMethod(new Color(186, 255, 0), LuoHarmaatext2Palikka);
177        kentta.SetTileMethod(new Color(200, 255, 255), LuoHarmaatext3Palikka);
178        kentta.SetTileMethod(new Color(91, 255, 173), LuoHarmaatext4Palikka);
179        kentta.Execute(40, 40);
180
181
182        // oranssi (255, 106, 0)
183        //vaalean vihreä (182, 255, 0)
184        ajastin = new Timer();
185        ajastin.Interval = 1;
186        ajastin.Timeout += delegate { pisteLaskuri.Value++; };
187
188        ajastin.Start();
189
190    }
191    void LuoPistelaskuri()
192    {
193        pisteLaskuri = new IntMeter(0);
194
195        pisteNaytto = new Label();
196        pisteNaytto.X = Screen.Left + 100;
197        pisteNaytto.Y = Screen.Top - 100;
198        pisteNaytto.TextColor = Color.Yellow;
199        pisteNaytto.Color = Color.Purple;
200
201        pisteNaytto.BindTo(pisteLaskuri);
202        Add(pisteNaytto);
203    }
204
205    void LuoHarmaatextPalikka(Vector paikka, double leveys, double korkeus)
206    {
207        LuoHarmaaPalikkaOikea(paikka, leveys, korkeus, "text");
208    }
209
210    void LuoHarmaatext3Palikka(Vector paikka, double leveys, double korkeus)
211    {
212        LuoHarmaaPalikkaOikea(paikka, leveys, korkeus, "text3");
213    }
214    void LuoHarmaatext4Palikka(Vector paikka, double leveys, double korkeus)
215    {
216        LuoHarmaaPalikkaOikea(paikka, leveys, korkeus, "text4");
217    }
218    void LuoHarmaaPalikkaOikea(Vector paikka, double leveys, double korkeus, string tag = "")
219    {
220        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
221        palikka.Position = paikka;
222        palikka.Color = Color.Gray;
223        palikka.Tag = tag;
224        palikka.IgnoresCollisionResponse = true;
225        Add(palikka);
226    }
227
228    void LuoHarmaatext2Palikka(Vector paikka, double leveys, double korkeus)
229    {
230        LuoHarmaaPalikkaOikea(paikka, leveys, korkeus, "text2");
231    }
232
233    void LuomaaliPalikka(Vector paikka, double leveys, double korkeus)
234    {
235        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
236        palikka.Position = paikka;
237        palikka.Color = Color.DarkGreen;
238        palikka.Tag = "maali";
239        palikka.IgnoresCollisionResponse = true;
240        Add(palikka);
241    }
242    void LuoHarmaaPalikka(Vector paikka, double leveys, double korkeus)
243    {
244        LuoHarmaaPalikkaOikea(paikka, leveys, korkeus);
245    }
246    void LuoOranssiPalikka(Vector paikka, double leveys, double korkeus)
247    {
248        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
249        palikka.Position = paikka;
250        palikka.Color = Color.Green;
251        palikka.IgnoresCollisionResponse = true;
252        Add(palikka);
253    }
254    void Luopallo(Vector paikka, double leveys, double korkeus)
255    {
256        pallo = new PhysicsObject(19, 19);
257        pallo.Position = paikka;
258        pallo.Shape = Shape.Circle;
259        pallo.Image = LoadImage("jalkapallo");
260
261        Add(pallo, 1);
262        AddCollisionHandler(pallo, "maali", naytamaalitexti);
263        AddCollisionHandler(pallo, "Rosvo", potkaisepalloa);
264        AddCollisionHandler(pallo, "Poliisi", potkaisepalloa);
265    }
266    void naytatexti(PhysicsObject text, PhysicsObject pelaaja)
267    {
268        MessageDisplay.Add("Jos ette jo huomannu lähes kaikki kentät on täysin turhia!! Onnea TÄN tekstin löydöstä! (ettikää lisää...)");
269    }
270    void naytatexti4(PhysicsObject text4, PhysicsObject pelaaja)
271    {
272        MessageDisplay.Add("Jos ette jo huomannu mun löpinä on turhaa!! Onnea TÄN tekstin löydöstä! (ettikää lisää...)");
273    }
274    void naytatexti3(PhysicsObject text3, PhysicsObject pelaaja)
275    {
276        MessageDisplay.Add("Jos ette jo huomannu nää tekstit on aivan turhia!! Onnea TÄN tekstin löydöstä! (ettikää lisää...)");
277    }
278    void naytatexti2(PhysicsObject text2, PhysicsObject pelaaja)
279    {
280        MessageDisplay.Add("Jos ette jo huomannu jalkapallot lentää sitä potkastessa minne sattuu!! Onnea TÄN tekstin löydöstä! (ettikää lisää...)");
281    }
282    void naytamaalitexti(PhysicsObject pallo, PhysicsObject maali)
283    {
284        MessageDisplay.Add("Maali!!");
285    }
286
287    void LuoPallonurmiPalikka(Vector paikka, double leveys, double korkeus)
288    {
289
290
291        pallo = new PhysicsObject(19, 19);
292        pallo.Position = paikka;
293        pallo.Shape = Shape.Circle;
294        pallo.Image = LoadImage("jalkapallo");
295
296        Add(pallo, 1);
297        LuoOranssiPalikka(paikka, leveys, korkeus);
298        AddCollisionHandler(pallo, "maali", naytamaalitexti);
299        AddCollisionHandler(pallo, "Rosvo", potkaisepalloa);
300        AddCollisionHandler(pallo, "Poliisi", potkaisepalloa);
301    }
302    void LuoPalikka(Vector paikka, double leveys, double korkeus)
303    {
304        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
305        palikka.Position = paikka;
306        palikka.Image = LoadImage("seina2");
307        palikka.Tag = "palikka";
308        Add(palikka);
309    }
310    void Luopelaaja(Vector paikka, double leveys, double korkeus)
311    {
312        pelaaja = new PhysicsObject(25, 25);
313        pelaaja.Position = paikka;
314        pelaaja.Image = LoadImage("Rosvo");
315        pelaaja.Tag = "Rosvo";
316        Add(pelaaja);
317        pelaajia++;
318
319        AddCollisionHandler(pelaaja, "text", naytatexti);
320        AddCollisionHandler(pelaaja, "text2", naytatexti2);
321        AddCollisionHandler(pelaaja, "text3", naytatexti3);
322        AddCollisionHandler(pelaaja, "text4", naytatexti4);
323        AddCollisionHandler(pelaaja, "palikka", PysaytaPelaaja);
324    }
325    void Luopelaaja2(Vector paikka, double leveys, double korkeus)
326    {
327        pelaaja2 = new PhysicsObject(25, 25);
328        pelaaja2.Position = paikka;
329        pelaaja2.Image = LoadImage("poliisi1");
330        Add(pelaaja2);
331        pelaaja2.Tag = "Poliisi";
332        pelaajia++;
333        AddCollisionHandler(pelaaja2, "palikka", PysaytaPelaaja);
334        AddCollisionHandler(pelaaja2, "Rosvo", aloitaalusta);
335        AddCollisionHandler(pelaaja2, "text", naytatexti);
336        AddCollisionHandler(pelaaja2, "text2", naytatexti2);
337        AddCollisionHandler(pelaaja2, "text3", naytatexti3);
338        AddCollisionHandler(pelaaja2, "text4", naytatexti4);
339    }
340    void Luopelaaja3(Vector paikka, double leveys, double korkeus)
341    {
342        pelaaja3 = new PhysicsObject(25, 25);
343        pelaaja3.Position = paikka;
344        pelaaja3.Image = LoadImage("poliisi 2");
345        Add(pelaaja3);
346        pelaajia++;
347        pelaaja3.Tag = "Poliisi";
348        AddCollisionHandler(pelaaja3, "palikka", PysaytaPelaaja);
349        AddCollisionHandler(pelaaja3, "Rosvo", aloitaalusta);
350        AddCollisionHandler(pelaaja3, "text", naytatexti);
351        AddCollisionHandler(pelaaja3, "text2", naytatexti2);
352        AddCollisionHandler(pelaaja3, "text3", naytatexti3);
353        AddCollisionHandler(pelaaja3, "text4", naytatexti4);
354    }
355    void Luopelaaja4(Vector paikka, double leveys, double korkeus)
356    {
357        pelaaja4 = new PhysicsObject(25, 25);
358        pelaaja4.Position = paikka;
359        pelaaja4.Image = LoadImage("poliisi 3");
360        Add(pelaaja4);
361        pelaajia++;
362        pelaaja4.Tag = "Poliisi";
363        AddCollisionHandler(pelaaja4, "palikka", PysaytaPelaaja);
364        AddCollisionHandler(pelaaja4, "Rosvo", aloitaalusta);
365        AddCollisionHandler(pelaaja4, "text", naytatexti);
366        AddCollisionHandler(pelaaja4, "text2", naytatexti2);
367        AddCollisionHandler(pelaaja4, "text3", naytatexti3);
368        AddCollisionHandler(pelaaja4, "text4", naytatexti4);
369    }
370    void potkaisepalloa(PhysicsObject tormaaja, PhysicsObject kohde)
371    {
372        tormaaja.Hit(Vector.FromLengthAndAngle(500, kohde.Angle));
373    }
374    void aloitaalusta(PhysicsObject tormaaja, PhysicsObject kohde)
375    {
376        int pisteet = pisteLaskuri.Value;
377        Begin();
378
379        Label edellisetPisteet = new Label(pisteet.ToString());
380        edellisetPisteet.Left = pisteNaytto.Left;
381        edellisetPisteet.TextColor = Color.Black;
382        Add(edellisetPisteet);
383    }
384    void PysaytaPelaaja(PhysicsObject tormaaja, PhysicsObject kohde)
385    {
386        Timer.SingleShot(0.5, tormaaja.Stop);
387    }
388
389    void lisaaohjaimet()
390    {
391        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-200, 0));
392        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, null, new Vector(200, 0));
393        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 200));
394        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -200));
395
396        Keyboard.Listen(Key.Left, ButtonState.Released, PysaytaPelaajaX, null);
397        Keyboard.Listen(Key.Right, ButtonState.Released, PysaytaPelaajaX, null);
398        Keyboard.Listen(Key.Up, ButtonState.Released, PysaytaPelaajaY, null);
399        Keyboard.Listen(Key.Down, ButtonState.Released, PysaytaPelaajaY, null);
400        //---------------------------------------------
401        Keyboard.Listen(Key.A, ButtonState.Down, LiikutaPelaajaa2, null, new Vector(-205, 0));
402        Keyboard.Listen(Key.D, ButtonState.Down, LiikutaPelaajaa2, null, new Vector(205, 0));
403        Keyboard.Listen(Key.W, ButtonState.Down, LiikutaPelaajaa2, null, new Vector(0, 205));
404        Keyboard.Listen(Key.S, ButtonState.Down, LiikutaPelaajaa2, null, new Vector(0, -205));
405
406        Keyboard.Listen(Key.A, ButtonState.Released, PysaytaPelaaja2X, null);
407        Keyboard.Listen(Key.D, ButtonState.Released, PysaytaPelaaja2X, null);
408        Keyboard.Listen(Key.W, ButtonState.Released, PysaytaPelaaja2Y, null);
409        Keyboard.Listen(Key.S, ButtonState.Released, PysaytaPelaaja2Y, null);
410        //----------------------------------------------------
411        Keyboard.Listen(Key.V, ButtonState.Down, LiikutaPelaajaa3, null, new Vector(-200, 0));
412        Keyboard.Listen(Key.N, ButtonState.Down, LiikutaPelaajaa3, null, new Vector(200, 0));
413        Keyboard.Listen(Key.G, ButtonState.Down, LiikutaPelaajaa3, null, new Vector(0, 200));
414        Keyboard.Listen(Key.B, ButtonState.Down, LiikutaPelaajaa3, null, new Vector(0, -200));
415
416        Keyboard.Listen(Key.V, ButtonState.Released, PysaytaPelaaja3X, null);
417        Keyboard.Listen(Key.N, ButtonState.Released, PysaytaPelaaja3X, null);
418        Keyboard.Listen(Key.G, ButtonState.Released, PysaytaPelaaja3Y, null);
419        Keyboard.Listen(Key.B, ButtonState.Released, PysaytaPelaaja3Y, null);
420        //----------------------------------------------------------
421        Keyboard.Listen(Key.NumPad4, ButtonState.Down, LiikutaPelaajaa4, null, new Vector(-200, 0));
422        Keyboard.Listen(Key.NumPad6, ButtonState.Down, LiikutaPelaajaa4, null, new Vector(200, 0));
423        Keyboard.Listen(Key.NumPad8, ButtonState.Down, LiikutaPelaajaa4, null, new Vector(0, 200));
424        Keyboard.Listen(Key.NumPad5, ButtonState.Down, LiikutaPelaajaa4, null, new Vector(0, -200));
425
426        Keyboard.Listen(Key.NumPad4, ButtonState.Released, PysaytaPelaaja4X, null);
427        Keyboard.Listen(Key.NumPad6, ButtonState.Released, PysaytaPelaaja4X, null);
428        Keyboard.Listen(Key.NumPad8, ButtonState.Released, PysaytaPelaaja4Y, null);
429        Keyboard.Listen(Key.NumPad5, ButtonState.Released, PysaytaPelaaja4Y, null);
430    }
431    void LiikutaPelaajaa(Vector liikuttaja)
432    {
433        if (pelaajia > 2)
434        {
435            liikuttaja = liikuttaja + Vector.FromLengthAndAngle(20, liikuttaja.Angle);
436        }
437        pelaaja.Move(liikuttaja);
438        pelaaja.Angle = liikuttaja.Angle + Angle.FromDegrees(90);
439    }
440    void PysaytaPelaajaX()
441    {
442        pelaaja.StopHorizontal();
443    }
444    void PysaytaPelaajaY()
445    {
446        pelaaja.StopVertical();
447    }
448    void LiikutaPelaajaa2(Vector liikuttaja)//-------------------------------------------
449    {
450        if (pelaajia > 2)
451        {
452            liikuttaja = liikuttaja + Vector.FromLengthAndAngle(-5, liikuttaja.Angle);
453        }
454        pelaaja2.Move(liikuttaja);
455        pelaaja2.Angle = liikuttaja.Angle + Angle.FromDegrees(90);
456    }
457    void PysaytaPelaaja2X()
458    {
459        pelaaja2.StopHorizontal();
460    }
461    void PysaytaPelaaja2Y()
462    {
463        pelaaja2.StopVertical();
464    }
465    void LiikutaPelaajaa3(Vector liikuttaja) //--------------------------------------
466    {
467        pelaaja3.Move(liikuttaja);
468        pelaaja3.Angle = liikuttaja.Angle + Angle.FromDegrees(90);
469    }
470    void PysaytaPelaaja3X()
471    {
472        pelaaja3.StopHorizontal();
473    }
474    void PysaytaPelaaja3Y()
475    {
476        pelaaja3.StopVertical();
477    }
478    void LiikutaPelaajaa4(Vector liikuttaja) // -----------------------------------------
479    {
480        pelaaja4.Move(liikuttaja);
481        pelaaja4.Angle = liikuttaja.Angle + Angle.FromDegrees(90);
482    }
483    void PysaytaPelaaja4X()
484    {
485        pelaaja4.StopHorizontal();
486    }
487    void PysaytaPelaaja4Y()
488    {
489        pelaaja4.StopVertical();
490    }
491
492
493
494
495}
496
Note: See TracBrowser for help on using the repository browser.