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

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