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

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