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

Revision 3405, 13.3 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    public override void Begin()
21    {
22        ClearAll();
23
24        IsFullScreen = true;
25
26        MultiSelectWindow valikko = new MultiSelectWindow("Tervetuloa peliin: Poliisi ja Rosvo",
27"Kenttä 1 2p.", "Kenttä 2 2p.", "Kenttä 3 2p.", "Kenttä 4 2p.", "Kenttä 5 4p.", "Kenttä 6 2p.", "Kenttä 7 4p.", "Kenttä 8 3p.", "Kenttä 9 4p.", "Kenttä 10 2p.", "jalkapalloKentta");
28        valikko.ItemSelected += PainettiinValikonNappia;
29        valikko.Color = Color.Green;
30        Level.BackgroundColor = Color.Black;
31        Add(valikko);
32    }
33    void PainettiinValikonNappia(int valinta)
34    {
35        switch (valinta)
36        {
37            case 0:
38                AloitaPeli("kentta3");
39                break;
40            case 1:
41                AloitaPeli("kentta4");
42                break;
43            case 2:
44                AloitaPeli("kentta2");
45                break;
46            case 3:
47                AloitaPeli("Kenttä");
48                break;
49            case 4:
50                AloitaPeli("kentta5");
51                break;
52            case 5:
53                AloitaPeli("kentta6");
54                break;
55            case 6:
56                AloitaPeli("kentta7");
57                break;
58            case 7:
59                AloitaPeli("kentta8");
60                break;
61            case 8:
62                AloitaPeli("kentta9");
63                break;
64            case 9:
65                AloitaPeli("kentta10");
66                break;
67                case 10:
68                AloitaPeli("jalkapalloKentta");
69                break;
70
71        }
72    } 
73    void AloitaPeli(string kentanNimi)
74    {
75        luokenttä(kentanNimi);
76        lisaaohjaimet();
77        Camera.ZoomToLevel();
78        Level.CreateBorders();
79        LuoPistelaskuri();
80       
81       
82        MediaPlayer.Play("the benny hill show theme song");
83
84        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
85        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
86        Keyboard.Listen(Key.Space, ButtonState.Pressed, Begin, "aloita alusta");
87        //Image taustaKuva = LoadImage("moi");
88        Level.BackgroundColor = Color.DarkRed;
89        Level.Background.Image = LoadImage("moi");
90        Level.Background.ScaleToLevelFull();
91    }
92
93    void luokenttä(string kentanNimi)
94    {
95        pelaajia = 0;
96
97        ColorTileMap kentta = ColorTileMap.FromLevelAsset(kentanNimi);
98        kentta.SetTileMethod(Color.Black, LuoPalikka);
99        kentta.SetTileMethod(Color.Red, Luopelaaja);
100        kentta.SetTileMethod(new Color(0, 255, 0), Luopelaaja2);
101        kentta.SetTileMethod(Color.White, Luopelaaja3);
102        kentta.SetTileMethod(Color.Blue, Luopelaaja4);
103        kentta.SetTileMethod(Color.Gray, LuoHarmaaPalikka);
104        kentta.SetTileMethod(new Color(0, 255, 255), Luopallo);
105        kentta.SetTileMethod(new Color(255, 255, 0), LuoPallonurmiPalikka);
106        kentta.SetTileMethod(new Color(255, 0, 220), LuomaaliPalikka);
107        kentta.SetTileMethod(new Color(255, 106, 0), LuoOranssiPalikka);
108        kentta.Execute(40, 40);
109
110
111        // oranssi (255, 106, 0)
112
113        ajastin = new Timer();
114        ajastin.Interval = 1;
115        ajastin.Timeout += delegate { pisteLaskuri.Value++; };
116
117        ajastin.Start();
118
119    }
120    void LuoPistelaskuri()
121    {
122        pisteLaskuri = new IntMeter(0);
123
124        pisteNaytto = new Label();
125        pisteNaytto.X = Screen.Left + 100;
126        pisteNaytto.Y = Screen.Top - 100;
127        pisteNaytto.TextColor = Color.Yellow;
128        pisteNaytto.Color = Color.Purple;
129
130        pisteNaytto.BindTo(pisteLaskuri);
131        Add(pisteNaytto);
132    }
133    void LuomaaliPalikka(Vector paikka, double leveys, double korkeus)
134    {
135        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
136        palikka.Position = paikka;
137        palikka.Color = Color.DarkGreen;
138        palikka.Tag = "maali";
139        palikka.IgnoresCollisionResponse = true;
140        Add(palikka);
141    }
142    void LuoHarmaaPalikka(Vector paikka, double leveys, double korkeus)
143    {
144        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
145        palikka.Position = paikka;
146        palikka.Color = Color.Gray;
147        palikka.IgnoresCollisionResponse = true;
148        Add(palikka);
149    }
150    void LuoOranssiPalikka(Vector paikka, double leveys, double korkeus)
151    {
152        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
153        palikka.Position = paikka;
154        palikka.Color = Color.Green;
155        palikka.IgnoresCollisionResponse = true;
156        Add(palikka);
157    }
158    void Luopallo(Vector paikka, double leveys, double korkeus)
159    {
160        pallo = new PhysicsObject(19, 19);
161        pallo.Position = paikka;
162        pallo.Shape = Shape.Circle;
163        pallo.Image = LoadImage("jalkapallo");
164
165        Add(pallo, 1);
166        AddCollisionHandler(pallo, "maali", naytamaalitexti);
167        AddCollisionHandler(pallo, "Rosvo", potkaisepalloa);
168        AddCollisionHandler(pallo, "Poliisi", potkaisepalloa);
169   
170    }
171    void naytamaalitexti(PhysicsObject pallo , PhysicsObject maali) 
172    {
173        MessageDisplay.Add("Maali!!");
174    }
175
176    void LuoPallonurmiPalikka(Vector paikka, double leveys, double korkeus)
177    {
178       
179
180        pallo = new PhysicsObject(19, 19);
181        pallo.Position = paikka;
182        pallo.Shape = Shape.Circle;
183        pallo.Image = LoadImage("jalkapallo");
184
185        Add(pallo ,1);
186        LuoOranssiPalikka(paikka, leveys, korkeus);
187        AddCollisionHandler(pallo, "maali", naytamaalitexti);
188        AddCollisionHandler(pallo, "Rosvo", potkaisepalloa);
189        AddCollisionHandler(pallo, "Poliisi", potkaisepalloa);
190    }
191   void LuoPalikka(Vector paikka, double leveys, double korkeus) 
192    {
193        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
194        palikka.Position = paikka;
195        palikka.Image = LoadImage("seina2");
196        palikka.Tag = "palikka";
197        Add(palikka);
198    }
199    void Luopelaaja(Vector paikka, double leveys, double korkeus)
200    {
201        pelaaja = new PhysicsObject(25, 25);
202        pelaaja.Position = paikka;
203        pelaaja.Image = LoadImage("Rosvo");
204        pelaaja.Tag = "Rosvo";
205        Add(pelaaja);
206        pelaajia++;
207
208        AddCollisionHandler(pelaaja, "palikka", PysaytaPelaaja);
209    } 
210    void Luopelaaja2(Vector paikka, double leveys, double korkeus)
211    {
212        pelaaja2 = new PhysicsObject(25, 25);
213        pelaaja2.Position = paikka;
214        pelaaja2.Image = LoadImage("poliisi");
215        Add(pelaaja2);
216        pelaaja2.Tag = "Poliisi";
217        pelaajia++;
218        AddCollisionHandler(pelaaja2, "palikka", PysaytaPelaaja);
219        AddCollisionHandler(pelaaja2, "Rosvo", aloitaalusta);
220    }
221    void Luopelaaja3(Vector paikka, double leveys, double korkeus)
222    {
223        pelaaja3 = new PhysicsObject(25, 25);
224        pelaaja3.Position = paikka;
225        pelaaja3.Image = LoadImage("poliisi 2");
226        Add(pelaaja3);
227        pelaajia++;
228        pelaaja3.Tag = "Poliisi";
229        AddCollisionHandler(pelaaja3, "palikka", PysaytaPelaaja);
230        AddCollisionHandler(pelaaja3, "Rosvo", aloitaalusta);
231    }
232    void Luopelaaja4(Vector paikka, double leveys, double korkeus)
233    {
234        pelaaja4 = new PhysicsObject(25, 25);
235        pelaaja4.Position = paikka;
236        pelaaja4.Image = LoadImage("poliisi 3");
237        Add(pelaaja4);
238        pelaajia++;
239        pelaaja4.Tag = "Poliisi";
240        AddCollisionHandler(pelaaja4, "palikka", PysaytaPelaaja);
241        AddCollisionHandler(pelaaja4, "Rosvo", aloitaalusta);
242    }
243    void potkaisepalloa(PhysicsObject tormaaja, PhysicsObject kohde) 
244    {
245        tormaaja.Hit(Vector.FromLengthAndAngle(500, kohde.Angle));
246    }
247    void aloitaalusta(PhysicsObject tormaaja, PhysicsObject kohde)
248    {
249        int pisteet = pisteLaskuri.Value;
250        Begin();
251
252        Label edellisetPisteet = new Label(pisteet.ToString());
253        edellisetPisteet.Left = pisteNaytto.Left;
254        edellisetPisteet.TextColor = Color.Yellow;
255        Add(edellisetPisteet);
256    }
257    void PysaytaPelaaja(PhysicsObject tormaaja, PhysicsObject kohde)
258    {
259        Timer.SingleShot(0.5, tormaaja.Stop);
260    }
261
262    void lisaaohjaimet()
263    {
264        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-200, 0));
265        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, null, new Vector(200, 0));
266        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 200));
267        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -200));
268
269        Keyboard.Listen(Key.Left, ButtonState.Released, PysaytaPelaajaX, null);
270        Keyboard.Listen(Key.Right, ButtonState.Released, PysaytaPelaajaX, null);
271        Keyboard.Listen(Key.Up, ButtonState.Released, PysaytaPelaajaY, null);
272        Keyboard.Listen(Key.Down, ButtonState.Released, PysaytaPelaajaY, null);
273        //---------------------------------------------
274        Keyboard.Listen(Key.A, ButtonState.Down, LiikutaPelaajaa2, null, new Vector(-205, 0));
275        Keyboard.Listen(Key.D, ButtonState.Down, LiikutaPelaajaa2, null, new Vector(205, 0));
276        Keyboard.Listen(Key.W, ButtonState.Down, LiikutaPelaajaa2, null, new Vector(0, 205));
277        Keyboard.Listen(Key.S, ButtonState.Down, LiikutaPelaajaa2, null, new Vector(0, -205));
278
279        Keyboard.Listen(Key.A, ButtonState.Released, PysaytaPelaaja2X, null);
280        Keyboard.Listen(Key.D, ButtonState.Released, PysaytaPelaaja2X, null);
281        Keyboard.Listen(Key.W, ButtonState.Released, PysaytaPelaaja2Y, null);
282        Keyboard.Listen(Key.S, ButtonState.Released, PysaytaPelaaja2Y, null);
283        //----------------------------------------------------
284        Keyboard.Listen(Key.V, ButtonState.Down, LiikutaPelaajaa3, null, new Vector(-200, 0));
285        Keyboard.Listen(Key.N, ButtonState.Down, LiikutaPelaajaa3, null, new Vector(200, 0));
286        Keyboard.Listen(Key.G, ButtonState.Down, LiikutaPelaajaa3, null, new Vector(0, 200));
287        Keyboard.Listen(Key.B, ButtonState.Down, LiikutaPelaajaa3, null, new Vector(0, -200));
288
289        Keyboard.Listen(Key.V, ButtonState.Released, PysaytaPelaaja3X, null);
290        Keyboard.Listen(Key.N, ButtonState.Released, PysaytaPelaaja3X, null);
291        Keyboard.Listen(Key.G, ButtonState.Released, PysaytaPelaaja3Y, null);
292        Keyboard.Listen(Key.B, ButtonState.Released, PysaytaPelaaja3Y, null);
293        //----------------------------------------------------------
294        Keyboard.Listen(Key.NumPad4, ButtonState.Down, LiikutaPelaajaa4, null, new Vector(-200, 0));
295        Keyboard.Listen(Key.NumPad6, ButtonState.Down, LiikutaPelaajaa4, null, new Vector(200, 0));
296        Keyboard.Listen(Key.NumPad8, ButtonState.Down, LiikutaPelaajaa4, null, new Vector(0, 200));
297        Keyboard.Listen(Key.NumPad5, ButtonState.Down, LiikutaPelaajaa4, null, new Vector(0, -200));
298
299        Keyboard.Listen(Key.NumPad4, ButtonState.Released, PysaytaPelaaja4X, null);
300        Keyboard.Listen(Key.NumPad6, ButtonState.Released, PysaytaPelaaja4X, null);
301        Keyboard.Listen(Key.NumPad8, ButtonState.Released, PysaytaPelaaja4Y, null);
302        Keyboard.Listen(Key.NumPad5, ButtonState.Released, PysaytaPelaaja4Y, null);
303    }
304    void LiikutaPelaajaa(Vector liikuttaja)
305    {
306        if (pelaajia > 2)
307        {
308            liikuttaja = liikuttaja + Vector.FromLengthAndAngle(20, liikuttaja.Angle);
309        }
310        pelaaja.Move(liikuttaja);
311        pelaaja.Angle = liikuttaja.Angle + Angle.FromDegrees(90);
312    }
313    void PysaytaPelaajaX()
314    {
315        pelaaja.StopHorizontal();
316    }
317    void PysaytaPelaajaY()
318    {
319        pelaaja.StopVertical();
320    }
321    void LiikutaPelaajaa2(Vector liikuttaja)//-------------------------------------------
322    {
323        if (pelaajia > 2)
324        {
325            liikuttaja = liikuttaja + Vector.FromLengthAndAngle(-5, liikuttaja.Angle);
326        }
327        pelaaja2.Move(liikuttaja);
328        pelaaja2.Angle = liikuttaja.Angle + Angle.FromDegrees(90);
329    }
330    void PysaytaPelaaja2X()
331    {
332        pelaaja2.StopHorizontal();
333    }
334    void PysaytaPelaaja2Y()
335    {
336        pelaaja2.StopVertical();
337    }
338    void LiikutaPelaajaa3(Vector liikuttaja) //--------------------------------------
339    {
340        pelaaja3.Move(liikuttaja);
341        pelaaja3.Angle = liikuttaja.Angle + Angle.FromDegrees(90);
342    }
343    void PysaytaPelaaja3X()
344    {
345        pelaaja3.StopHorizontal();
346    }
347    void PysaytaPelaaja3Y()
348    {
349        pelaaja3.StopVertical();
350    }
351    void LiikutaPelaajaa4(Vector liikuttaja) // -----------------------------------------
352    {
353        pelaaja4.Move(liikuttaja);
354        pelaaja4.Angle = liikuttaja.Angle + Angle.FromDegrees(90);
355    }
356    void PysaytaPelaaja4X()
357    {
358        pelaaja4.StopHorizontal();
359    }
360    void PysaytaPelaaja4Y()
361    {
362        pelaaja4.StopVertical();
363    }
364   
365   
366
367
368}
369
Note: See TracBrowser for help on using the repository browser.