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

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