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

Revision 3558, 19.7 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    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 ukkeli = RandomGen.SelectOne<string>("ukkeli", "ukkeli2", "ukkeli3");
325
326       
327    }
328    void Luoukkeli(Vector paikka, double leveys, double korkeus)
329    {
330        //ukkeli = new PhysicsObject(25, 25);
331        //ukkeli.Position = paikka;
332        //ukkeli.Image = LoadImage("ukkeli");
333        //ukkeli.Tag = "ukkeli";
334        //Add(ukkeli);
335    }
336    void Luopelaaja(Vector paikka, double leveys, double korkeus)
337    {
338        pelaaja = new PhysicsObject(25, 25);
339        pelaaja.Position = paikka;
340        pelaaja.Image = LoadImage("Rosvo");
341        pelaaja.Tag = "Rosvo";
342        Add(pelaaja);
343        pelaajia++;
344
345        AddCollisionHandler(pelaaja, "text", naytatexti);
346        AddCollisionHandler(pelaaja, "text2", naytatexti2);
347        AddCollisionHandler(pelaaja, "text3", naytatexti3);
348        AddCollisionHandler(pelaaja, "text4", naytatexti4);
349        AddCollisionHandler(pelaaja, "text5", naytatexti5);
350        AddCollisionHandler(pelaaja, "palikka", PysaytaPelaaja);
351    }
352    void Luopelaaja2(Vector paikka, double leveys, double korkeus)
353    {
354        pelaaja2 = new PhysicsObject(25, 25);
355        pelaaja2.Position = paikka;
356        pelaaja2.Image = LoadImage("poliisi1");
357        Add(pelaaja2);
358        pelaaja2.Tag = "Poliisi";
359        pelaajia++;
360        AddCollisionHandler(pelaaja2, "palikka", PysaytaPelaaja);
361        AddCollisionHandler(pelaaja2, "Rosvo", aloitaalusta);
362        AddCollisionHandler(pelaaja2, "text", naytatexti);
363        AddCollisionHandler(pelaaja2, "text2", naytatexti2);
364        AddCollisionHandler(pelaaja2, "text3", naytatexti3);
365        AddCollisionHandler(pelaaja2, "text4", naytatexti4);
366        AddCollisionHandler(pelaaja2, "text5", naytatexti5);
367    }
368    void Luopelaaja3(Vector paikka, double leveys, double korkeus)
369    {
370        pelaaja3 = new PhysicsObject(25, 25);
371        pelaaja3.Position = paikka;
372        pelaaja3.Image = LoadImage("poliisi 2");
373        Add(pelaaja3);
374        pelaajia++;
375        pelaaja3.Tag = "Poliisi";
376        AddCollisionHandler(pelaaja3, "palikka", PysaytaPelaaja);
377        AddCollisionHandler(pelaaja3, "Rosvo", aloitaalusta);
378        AddCollisionHandler(pelaaja3, "text", naytatexti);
379        AddCollisionHandler(pelaaja3, "text2", naytatexti2);
380        AddCollisionHandler(pelaaja3, "text3", naytatexti3);
381        AddCollisionHandler(pelaaja3, "text4", naytatexti4);
382        AddCollisionHandler(pelaaja3, "text5", naytatexti5);
383    }
384    void Luopelaaja4(Vector paikka, double leveys, double korkeus)
385    {
386        pelaaja4 = new PhysicsObject(25, 25);
387        pelaaja4.Position = paikka;
388        pelaaja4.Image = LoadImage("poliisi 3");
389        Add(pelaaja4);
390        pelaajia++;
391        pelaaja4.Tag = "Poliisi";
392        AddCollisionHandler(pelaaja4, "palikka", PysaytaPelaaja);
393        AddCollisionHandler(pelaaja4, "Rosvo", aloitaalusta);
394        AddCollisionHandler(pelaaja4, "text", naytatexti);
395        AddCollisionHandler(pelaaja4, "text2", naytatexti2);
396        AddCollisionHandler(pelaaja4, "text3", naytatexti3);
397        AddCollisionHandler(pelaaja4, "text4", naytatexti4);
398        AddCollisionHandler(pelaaja4, "text5", naytatexti5);
399    }
400    void potkaisepalloa(PhysicsObject tormaaja, PhysicsObject kohde)
401    {
402        tormaaja.Hit(Vector.FromLengthAndAngle(500, kohde.Angle));
403    }
404    void aloitaalusta(PhysicsObject tormaaja, PhysicsObject kohde)
405    {
406        int pisteet = pisteLaskuri.Value;
407        Begin();
408
409        Label edellisetPisteet = new Label(pisteet.ToString());
410        edellisetPisteet.Left = pisteNaytto.Left;
411        edellisetPisteet.TextColor = Color.Black;
412        Add(edellisetPisteet);
413    }
414    void PysaytaPelaaja(PhysicsObject tormaaja, PhysicsObject kohde)
415    {
416        Timer.SingleShot(0.5, tormaaja.Stop);
417    }
418
419    void lisaaohjaimet()
420    {
421        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-200, 0));
422        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, null, new Vector(200, 0));
423        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 200));
424        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -200));
425
426        Keyboard.Listen(Key.Left, ButtonState.Released, PysaytaPelaajaX, null);
427        Keyboard.Listen(Key.Right, ButtonState.Released, PysaytaPelaajaX, null);
428        Keyboard.Listen(Key.Up, ButtonState.Released, PysaytaPelaajaY, null);
429        Keyboard.Listen(Key.Down, ButtonState.Released, PysaytaPelaajaY, null);
430        //---------------------------------------------
431        Keyboard.Listen(Key.A, ButtonState.Down, LiikutaPelaajaa2, null, new Vector(-205, 0));
432        Keyboard.Listen(Key.D, ButtonState.Down, LiikutaPelaajaa2, null, new Vector(205, 0));
433        Keyboard.Listen(Key.W, ButtonState.Down, LiikutaPelaajaa2, null, new Vector(0, 205));
434        Keyboard.Listen(Key.S, ButtonState.Down, LiikutaPelaajaa2, null, new Vector(0, -205));
435
436        Keyboard.Listen(Key.A, ButtonState.Released, PysaytaPelaaja2X, null);
437        Keyboard.Listen(Key.D, ButtonState.Released, PysaytaPelaaja2X, null);
438        Keyboard.Listen(Key.W, ButtonState.Released, PysaytaPelaaja2Y, null);
439        Keyboard.Listen(Key.S, ButtonState.Released, PysaytaPelaaja2Y, null);
440        //----------------------------------------------------
441        Keyboard.Listen(Key.V, ButtonState.Down, LiikutaPelaajaa3, null, new Vector(-200, 0));
442        Keyboard.Listen(Key.N, ButtonState.Down, LiikutaPelaajaa3, null, new Vector(200, 0));
443        Keyboard.Listen(Key.G, ButtonState.Down, LiikutaPelaajaa3, null, new Vector(0, 200));
444        Keyboard.Listen(Key.B, ButtonState.Down, LiikutaPelaajaa3, null, new Vector(0, -200));
445
446        Keyboard.Listen(Key.V, ButtonState.Released, PysaytaPelaaja3X, null);
447        Keyboard.Listen(Key.N, ButtonState.Released, PysaytaPelaaja3X, null);
448        Keyboard.Listen(Key.G, ButtonState.Released, PysaytaPelaaja3Y, null);
449        Keyboard.Listen(Key.B, ButtonState.Released, PysaytaPelaaja3Y, null);
450        //----------------------------------------------------------
451        Keyboard.Listen(Key.NumPad4, ButtonState.Down, LiikutaPelaajaa4, null, new Vector(-200, 0));
452        Keyboard.Listen(Key.NumPad6, ButtonState.Down, LiikutaPelaajaa4, null, new Vector(200, 0));
453        Keyboard.Listen(Key.NumPad8, ButtonState.Down, LiikutaPelaajaa4, null, new Vector(0, 200));
454        Keyboard.Listen(Key.NumPad5, ButtonState.Down, LiikutaPelaajaa4, null, new Vector(0, -200));
455
456        Keyboard.Listen(Key.NumPad4, ButtonState.Released, PysaytaPelaaja4X, null);
457        Keyboard.Listen(Key.NumPad6, ButtonState.Released, PysaytaPelaaja4X, null);
458        Keyboard.Listen(Key.NumPad8, ButtonState.Released, PysaytaPelaaja4Y, null);
459        Keyboard.Listen(Key.NumPad5, ButtonState.Released, PysaytaPelaaja4Y, null);
460    }
461    void LiikutaPelaajaa(Vector liikuttaja)
462    {
463        if (pelaajia > 2)
464        {
465            liikuttaja = liikuttaja + Vector.FromLengthAndAngle(20, liikuttaja.Angle);
466        }
467        pelaaja.Move(liikuttaja);
468        pelaaja.Angle = liikuttaja.Angle + Angle.FromDegrees(90);
469    }
470    void PysaytaPelaajaX()
471    {
472        pelaaja.StopHorizontal();
473    }
474    void PysaytaPelaajaY()
475    {
476        pelaaja.StopVertical();
477    }
478    void LiikutaPelaajaa2(Vector liikuttaja)//-------------------------------------------
479    {
480        if (pelaajia > 2)
481        {
482            liikuttaja = liikuttaja + Vector.FromLengthAndAngle(-5, liikuttaja.Angle);
483        }
484        pelaaja2.Move(liikuttaja);
485        pelaaja2.Angle = liikuttaja.Angle + Angle.FromDegrees(90);
486    }
487    void PysaytaPelaaja2X()
488    {
489        pelaaja2.StopHorizontal();
490    }
491    void PysaytaPelaaja2Y()
492    {
493        pelaaja2.StopVertical();
494    }
495    void LiikutaPelaajaa3(Vector liikuttaja) //--------------------------------------
496    {
497        pelaaja3.Move(liikuttaja);
498        pelaaja3.Angle = liikuttaja.Angle + Angle.FromDegrees(90);
499    }
500    void PysaytaPelaaja3X()
501    {
502        pelaaja3.StopHorizontal();
503    }
504    void PysaytaPelaaja3Y()
505    {
506        pelaaja3.StopVertical();
507    }
508    void LiikutaPelaajaa4(Vector liikuttaja) // -----------------------------------------
509    {
510        pelaaja4.Move(liikuttaja);
511        pelaaja4.Angle = liikuttaja.Angle + Angle.FromDegrees(90);
512    }
513    void PysaytaPelaaja4X()
514    {
515        pelaaja4.StopHorizontal();
516    }
517    void PysaytaPelaaja4Y()
518    {
519        pelaaja4.StopVertical();
520    }
521
522
523
524
525}
526
Note: See TracBrowser for help on using the repository browser.