source: 2010/24/Vilvaini/SmilejumpToimiva/Peli.cs @ 1250

Revision 1250, 58.5 KB checked in by vilvaini, 10 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.ScreenObjects;
5using Jypeli.Assets;
6using Jypeli.Widgets;
7
8public class Tasohyppely : PhysicsGame
9{
10    GameObject Pelaajamaaranappi = new GameObject(600, 100);
11    GameObject Ohjeetnappi = new GameObject(600, 100);
12    GameObject Pisteetnappi = new GameObject(600, 100);
13    GameObject Poistunappi = new GameObject(600, 100);
14
15    const double nopeus = 300;
16    const double hyppyVoima = 4000;
17
18    const double Kuplaaika = 5;
19
20    const double KPPisteraja = 7;
21
22    double tasokorkeus = 0;
23    double vihollistiheytys = 1;
24    double tasoleveys = 150;
25    double viholliskorkeus = 800;
26    double pelaajamaara = 0;
27    double korkeus;
28    double korkein;
29
30    bool YP = false;
31    bool PeliKäynnissä = false;
32    bool p1SaiVoiton = false;
33    bool p2SaiVoiton = false;
34    bool p3SaiVoiton = false;
35    bool p4SaiVoiton = false;
36    bool p1elamamenetys = false;
37    bool p2elamamenetys = false;
38    bool p3elamamenetys = false;
39    bool p4elamamenetys = false;
40    bool p1OnKuplassa = false;
41    bool p2OnKuplassa = false;
42    bool p3OnKuplassa = false;
43    bool p4OnKuplassa = false;
44
45    IntMeter pelaajan1pisteet;
46    IntMeter pelaajan2pisteet;
47    IntMeter pelaajan3pisteet;
48    IntMeter pelaajan4pisteet;
49    IntMeter pelaajan1elamat;
50    IntMeter pelaajan2elamat;
51    IntMeter pelaajan3elamat;
52    IntMeter pelaajan4elamat;
53
54    PlatformCharacter pelaaja1;
55    PlatformCharacter pelaaja2;
56    PlatformCharacter pelaaja3;
57    PlatformCharacter pelaaja4;
58
59    PhysicsObject P1kupla;
60    PhysicsObject P2kupla;
61    PhysicsObject P3kupla;
62    PhysicsObject P4kupla;
63    PhysicsObject voittaja;
64    PhysicsObject Alku;
65    PhysicsObject PMäärä;
66    PhysicsObject Tappio;
67    PhysicsObject Ohje2p;
68    PhysicsObject Ohje3p;
69    PhysicsObject vasenReuna;
70    PhysicsObject alaReuna;
71    PhysicsObject oikeaReuna;
72    PhysicsObject DownReuna;
73
74    Timer aikaLaskuri3;
75    Timer aikaLaskuri2;
76    Timer aikaLaskuri;
77
78    Timer KuplaSyntymä1;
79    Timer KuplaSyntymä2;
80    Timer KuplaSyntymä3;
81    Timer KuplaSyntymä4;
82
83    TextDisplay mittari;
84
85    HighScoreList korkeustaulukko;
86
87    Vector aloituspaikka;
88
89    protected override void Begin()
90    {
91        MediaPlayer.Play("Menu");
92        TeeKorkeustaulukko();
93        SetWindowSize(1440, 900, true); 
94        Level.Width = 1024;
95        Level.Height = 30000;
96        Teelaskurit();
97        Camera.StayInLevel = true;
98        Alkukentta();
99    }
100
101    private void TeeKorkeustaulukko()
102    {
103        korkeustaulukko = HighScoreList.LoadOrCreate("jeejee.dat", 20);
104        korkeustaulukko.ScreenList.ItemColor = Color.Black;
105        korkeustaulukko.ScreenList.BackGroundColor = Color.TransparentWhite;
106        korkeustaulukko.ScreenList.X = -280;
107        korkeustaulukko.ScreenList.Y = 40;
108        korkeustaulukko.ScreenList.HighlightColor = Color.TransparentBlack;
109        korkeustaulukko.ScreenInput.QueryText.TextColor = Color.Blue;
110        korkeustaulukko.CongratulationText = "Onnittelut! Pääsit {1} pikseliä korkealle! Pääsit {0}. sijalle. Syötä nimesi:";
111    }
112
113    private void Teelaskurit()
114    {
115        pelaajan1pisteet = new IntMeter(0);
116        pelaajan2pisteet = new IntMeter(0);
117        pelaajan3pisteet = new IntMeter(0);
118        pelaajan4pisteet = new IntMeter(0);
119        pelaajan1elamat = new IntMeter(2);
120        pelaajan2elamat = new IntMeter(2);
121        pelaajan3elamat = new IntMeter(2);
122        pelaajan4elamat = new IntMeter(2);
123    }
124
125    void Alkukentta()
126    {
127        PeliKäynnissä = false;
128        ClearAll();
129        YP = false;
130
131        Mouse.IsCursorVisible = true;
132        AlustaLaskurit();
133        Alkunappaimet();
134        lisaaPelaaja1(0, Level.Bottom + 50);
135        lisaaPelaaja2(100, Level.Bottom + 50);
136        LisaaDownReuna();
137        LisaaEitoimiruutu();
138        alaReuna = Level.CreateBottomBorder();
139        LisaaAloitusruutu();
140        pelaajamaara = 0;
141        TeePäävalikkoNapit();
142    }
143
144    private void TeePäävalikkoNapit()
145    {
146        Pelaajamaaranappi = new GameObject(400, 70);
147        Pisteetnappi = new GameObject(400, 70);
148        Ohjeetnappi = new GameObject(400, 70);
149        Poistunappi = new GameObject(400, 70);
150
151        Mouse.ListenOn(Pelaajamaaranappi, MouseButton.Left, ButtonState.Pressed, Pelaajamaarakentta, "");
152        Mouse.ListenOn(Pelaajamaaranappi, MouseButton.Left, ButtonState.Up, Nappipunainen, "",(4));
153        Mouse.ListenOn(Pisteetnappi, MouseButton.Left, ButtonState.Pressed, Parhaatpisteetkentta, "");
154        Mouse.ListenOn(Pisteetnappi, MouseButton.Left, ButtonState.Up, Nappipunainen, "", (5));
155        Mouse.ListenOn(Ohjeetnappi, MouseButton.Left, ButtonState.Pressed, Ohjevalikko, "");
156        Mouse.ListenOn(Ohjeetnappi, MouseButton.Left, ButtonState.Up, Nappipunainen, "", (6));
157        Mouse.ListenOn(Poistunappi, MouseButton.Left, ButtonState.Pressed, Exit, "");
158        Mouse.ListenOn(Poistunappi, MouseButton.Left, ButtonState.Up, Nappipunainen, "", (7));
159
160        Pelaajamaaranappi.Image = LoadImage("NappiAloitapeli");
161        Pisteetnappi.Image = LoadImage("NappiPisteet");
162        Ohjeetnappi.Image = LoadImage("NappiOhjeet");
163        Poistunappi.Image = LoadImage("NappiPoistu");
164
165        Pelaajamaaranappi.X = 0;
166        Pelaajamaaranappi.Y = Level.Bottom + 330;
167        Pisteetnappi.X = 0;
168        Pisteetnappi.Y = Level.Bottom + 240;
169        Ohjeetnappi.X = 0;
170        Ohjeetnappi.Y = Level.Bottom + 150;
171        Poistunappi.X = 0;
172        Poistunappi.Y = Level.Bottom + 60;
173
174        Add(Pelaajamaaranappi);
175        Add(Pisteetnappi);
176        Add(Ohjeetnappi);
177        Add(Poistunappi);
178
179    }
180
181    private void Nappipunainen(int nappi)
182    {
183        //Pelaajamääränapit ja ohjenapit
184        if (nappi == 1)
185        {
186            Pelaajamaaranappi.Image = LoadImage("NappiKaksinpeli2");
187            Pisteetnappi.Image = LoadImage("NappiKolminpeli");
188            Ohjeetnappi.Image = LoadImage("NappiNelinpeli");
189            Poistunappi.Image = LoadImage("NappiPäävalikkoon");
190        }
191        if (nappi == 2)
192        {
193            Pisteetnappi.Image = LoadImage("NappiKolminpeli2");
194            Pelaajamaaranappi.Image = LoadImage("NappiKaksinpeli");
195            Ohjeetnappi.Image = LoadImage("NappiNelinpeli");
196            Poistunappi.Image = LoadImage("NappiPäävalikkoon");
197        }
198        if (nappi == 3)
199        {
200            Ohjeetnappi.Image = LoadImage("NappiNelinpeli2");
201            Pelaajamaaranappi.Image = LoadImage("NappiKaksinpeli");
202            Pisteetnappi.Image = LoadImage("NappiKolminpeli");
203            Poistunappi.Image = LoadImage("NappiPäävalikkoon");
204        }
205        //Päävalikkonapit
206        if (nappi == 4)
207        {
208            Ohjeetnappi.Image = LoadImage("NappiOhjeet");
209            Pisteetnappi.Image = LoadImage("NappiPisteet");
210            Pelaajamaaranappi.Image = LoadImage("NappiAloitapeli2");
211            Poistunappi.Image = LoadImage("NappiPoistu");
212        }
213        if (nappi == 5)
214        {
215            Pelaajamaaranappi.Image = LoadImage("NappiAloitapeli");
216            Ohjeetnappi.Image = LoadImage("NappiOhjeet");
217            Pisteetnappi.Image = LoadImage("NappiPisteet2");
218            Poistunappi.Image = LoadImage("NappiPoistu");
219        }
220        if (nappi == 6)
221        {
222            Pelaajamaaranappi.Image = LoadImage("NappiAloitapeli");
223            Pisteetnappi.Image = LoadImage("NappiPisteet");
224            Ohjeetnappi.Image = LoadImage("NappiOhjeet2");
225            Poistunappi.Image = LoadImage("NappiPoistu");
226        }
227        if (nappi == 7)
228        {
229            Pelaajamaaranappi.Image = LoadImage("NappiAloitapeli");
230            Pisteetnappi.Image = LoadImage("NappiPisteet");
231            Ohjeetnappi.Image = LoadImage("NappiOhjeet");
232            Poistunappi.Image = LoadImage("NappiPoistu2");
233        }
234        //Pelimodinapit
235        if (nappi == 8)
236        {
237            Pelaajamaaranappi.Image = LoadImage("NappiKP");
238            Pisteetnappi.Image = LoadImage("NappiYP");
239            Poistunappi.Image = LoadImage("NappiPäävalikkoon");
240        }
241        if (nappi == 9)
242        {
243            Pelaajamaaranappi.Image = LoadImage("NappiKP2");
244            Pisteetnappi.Image = LoadImage("NappiYP2");
245            Poistunappi.Image = LoadImage("NappiPäävalikkoon");
246        }
247        //if (nappi == 10)
248        //{
249        //    Poistunappi.Image = LoadImage("NappiPäävalikkoon2");
250        //}
251
252        //Ohjenapit = pelaajamääränapit
253
254        //Paluunappi
255        if (nappi == 14)
256        {
257            Poistunappi.Image = LoadImage("NappiPäävalikkoon2");
258            Pelaajamaaranappi.Image = LoadImage("NappiKaksinpeli");
259            Pisteetnappi.Image = LoadImage("NappiKolminpeli");
260            Ohjeetnappi.Image = LoadImage("NappiNelinpeli");
261        }
262        if (nappi == 15)
263        {
264            Poistunappi.Image = LoadImage("NappiPäävalikkoon2");
265            Pelaajamaaranappi.Image = LoadImage("NappiKP2");
266            Pisteetnappi.Image = LoadImage("NappiYP");
267        }
268    }
269
270    private void TeePelimodiNapit()
271    {
272        Pelaajamaaranappi = new GameObject(400, 70);
273        Pisteetnappi = new GameObject(400, 70);
274        //Poistunappi = new GameObject(400, 70);
275
276        Mouse.ListenOn(Pelaajamaaranappi, MouseButton.Left, ButtonState.Pressed, AloitaKP, "");
277        Mouse.ListenOn(Pelaajamaaranappi, MouseButton.Left, ButtonState.Up, Nappipunainen, "", (8));
278        Mouse.ListenOn(Pisteetnappi, MouseButton.Left, ButtonState.Pressed, AloitaYP, "");
279        Mouse.ListenOn(Pisteetnappi, MouseButton.Left, ButtonState.Up, Nappipunainen, "", (9));
280        //Mouse.ListenOn(Poistunappi, MouseButton.Left, ButtonState.Pressed, Alkukentta, "");
281        //Mouse.ListenOn(Poistunappi, MouseButton.Left, ButtonState.Up, Nappipunainen, "", (10));
282
283        Pelaajamaaranappi.Image = LoadImage("NappiKP2");
284        Pisteetnappi.Image = LoadImage("NappiYP");
285        //Poistunappi.Image = LoadImage("NappiPäävalikkoon");
286
287        Pelaajamaaranappi.X = 0;
288        Pelaajamaaranappi.Y = Level.Bottom + 330;
289        Pisteetnappi.X = 0;
290        Pisteetnappi.Y = Level.Bottom + 240;
291        //Poistunappi.X = 0;
292        //Poistunappi.Y = Level.Bottom + 60;
293
294        Add(Pelaajamaaranappi);
295        Add(Pisteetnappi);
296        //Add(Poistunappi);
297        TeePaluuNappi(0, Level.Bottom + 60, 400, 70, 2);
298    }
299
300    private void TeePelaajamääräNapit()
301    {
302        Pelaajamaaranappi = new GameObject(400, 70);
303        Pisteetnappi = new GameObject(400, 70);
304        Ohjeetnappi = new GameObject(400, 70);
305
306        Mouse.ListenOn(Pelaajamaaranappi, MouseButton.Left, ButtonState.Pressed, Kahdenpelaajanpeli, "");
307        Mouse.ListenOn(Pelaajamaaranappi, MouseButton.Left, ButtonState.Up, Nappipunainen, "",(1));
308        Mouse.ListenOn(Pisteetnappi, MouseButton.Left, ButtonState.Pressed, Kolmenpelaajanpeli, "");
309        Mouse.ListenOn(Pisteetnappi, MouseButton.Left, ButtonState.Up, Nappipunainen, "", (2));
310        Mouse.ListenOn(Ohjeetnappi, MouseButton.Left, ButtonState.Pressed, Neljanpelaajanpeli, "");
311        Mouse.ListenOn(Ohjeetnappi, MouseButton.Left, ButtonState.Up, Nappipunainen, "", (3));
312
313        Pelaajamaaranappi.Image = LoadImage("NappiKaksinpeli");
314        Pisteetnappi.Image = LoadImage("NappiKolminpeli");
315        Ohjeetnappi.Image = LoadImage("NappiNelinpeli");
316
317        Pelaajamaaranappi.X = 0;
318        Pelaajamaaranappi.Y = Level.Bottom + 360;
319        Pisteetnappi.X = 0;
320        Pisteetnappi.Y = Level.Bottom + 270;
321        Ohjeetnappi.X = 0;
322        Ohjeetnappi.Y = Level.Bottom + 180;
323
324        Add(Pelaajamaaranappi);
325        Add(Pisteetnappi);
326        Add(Ohjeetnappi);
327        TeePaluuNappi(0, Level.Bottom + 50, 400, 70,1);
328    }
329
330    private void TeeOhjeNapit()
331    {
332        Pelaajamaaranappi = new GameObject(400, 70);
333        Pisteetnappi = new GameObject(400, 70);
334        Ohjeetnappi = new GameObject(400, 70);
335
336        Mouse.ListenOn(Pelaajamaaranappi, MouseButton.Left, ButtonState.Pressed, ohjevalikko2p, "");
337        Mouse.ListenOn(Pelaajamaaranappi, MouseButton.Left, ButtonState.Up, Nappipunainen, "", (1));
338        Mouse.ListenOn(Pisteetnappi, MouseButton.Left, ButtonState.Pressed, ohjevalikko3p, "");
339        Mouse.ListenOn(Pisteetnappi, MouseButton.Left, ButtonState.Up, Nappipunainen, "", (2));
340        Mouse.ListenOn(Ohjeetnappi, MouseButton.Left, ButtonState.Pressed, ohjevalikko4p, "");
341        Mouse.ListenOn(Ohjeetnappi, MouseButton.Left, ButtonState.Up, Nappipunainen, "", (3));
342
343        Pelaajamaaranappi.Image = LoadImage("NappiKaksinpeli");
344        Pisteetnappi.Image = LoadImage("NappiKolminpeli");
345        Ohjeetnappi.Image = LoadImage("NappiNelinpeli");
346
347        Pelaajamaaranappi.X = 0;
348        Pelaajamaaranappi.Y = Level.Bottom + 330;
349        Pisteetnappi.X = 0;
350        Pisteetnappi.Y = Level.Bottom + 240;
351        Ohjeetnappi.X = 0;
352        Ohjeetnappi.Y = Level.Bottom + 150;
353
354        Add(Pelaajamaaranappi);
355        Add(Pisteetnappi);
356        Add(Ohjeetnappi);
357        TeePaluuNappi(0, Level.Bottom + 60, 400, 70,1);
358
359    }
360
361    private void TeePaluuNappi(double x, double y, double leveys, double korkeus, double ruutu)
362    {
363        Poistunappi = new GameObject(leveys, korkeus);
364
365        Mouse.ListenOn(Poistunappi, MouseButton.Left, ButtonState.Pressed, Alkukentta, "");
366        if (ruutu == 1)
367        {
368            Mouse.ListenOn(Poistunappi, MouseButton.Left, ButtonState.Up, Nappipunainen, "", (14));
369        }
370        if (ruutu == 2)
371        {
372            Mouse.ListenOn(Poistunappi, MouseButton.Left, ButtonState.Up, Nappipunainen, "", (15));
373        }
374
375        Poistunappi.Image = LoadImage("NappiPäävalikkoon");
376
377        Poistunappi.X = x;
378        Poistunappi.Y = y;
379
380        Add(Poistunappi);
381
382    }
383
384    void AloitaYP()
385    {
386        if (pelaajamaara == 2)
387        {
388            KahdenpelaajanYP();
389        }
390        if (pelaajamaara == 3)
391        {
392            KolmenpelaajanYP();
393        }
394        if (pelaajamaara == 4)
395        {
396            NeljanpelaajanYP();
397        }
398        PeliKäynnissä = true;
399    }
400
401    void AloitaKP()
402    {
403        if (pelaajamaara == 2)
404        {
405            KahdenpelaajanKP();
406        }
407        if (pelaajamaara == 3)
408        {
409            KolmenpelaajanKP();
410        }
411        if (pelaajamaara == 4)
412        {
413            NeljanpelaajanKP();
414        }
415        PeliKäynnissä = true;
416    }
417
418    void Pelimodikentta()
419    {
420        ClearAll();
421        LisaaEitoimiruutu();
422        TeePelimodivalikko();
423        TeePelimodiNapit();
424    }
425
426    void Ohjevalikko()
427    {
428        ClearAll();
429        LisaaEitoimiruutu();
430        TeeOhjevalikko();
431        TeeOhjeNapit();
432    }
433
434    void Pelaajamaarakentta()
435    {
436        ClearAll();
437        LisaaEitoimiruutu();
438        TeePelaajaMäärä();
439        TeePelaajamääräNapit();
440    }
441
442    void Parhaatpisteetkentta()
443    {
444        PeliKäynnissä = false;
445        ClearAll();
446        Tappionappaimet();
447        TeeTappiovalikko();
448        pelaajamaara = 0;
449        korkeustaulukko.Show((int)korkeus);
450        TeePaluuNappi(6, Level.Bottom + 31, 300, 50,1);
451        //MediaPlayer.Stop();
452    }
453
454    void Tappionappaimet()
455    {
456        Keyboard.Listen(Key.P, ButtonState.Pressed, Alkukentta, "");
457    }
458
459    private void AlustaLaskurit()
460    {
461        pelaajan1pisteet.Reset();
462        pelaajan2pisteet.Reset();
463        pelaajan3pisteet.Reset();
464        pelaajan4pisteet.Reset();
465
466        pelaajan1elamat.Reset();
467        pelaajan2elamat.Reset();
468        pelaajan3elamat.Reset();
469        pelaajan4elamat.Reset();
470    }
471
472    private void Alkunappaimet()
473    {
474        Keyboard.Listen(Key.D2, ButtonState.Pressed, Kahdenpelaajanpeli, "");
475        Keyboard.Listen(Key.D3, ButtonState.Pressed, Kolmenpelaajanpeli, "");
476        Keyboard.Listen(Key.D4, ButtonState.Pressed, Neljanpelaajanpeli, "");
477        Keyboard.Listen(Key.D5, ButtonState.Pressed, korkeustaulukko.Show, "");
478        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "");
479    }
480
481    private void Pelimodinappaimet()
482    {
483        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "");
484        if (pelaajamaara == 2)
485        {
486            Keyboard.Listen(Key.D1, ButtonState.Pressed, KahdenpelaajanKP, "");
487            Keyboard.Listen(Key.D2, ButtonState.Pressed, KahdenpelaajanYP, "");
488            Keyboard.Listen(Key.H, ButtonState.Pressed, ohjevalikko2p, "");
489        }
490        if (pelaajamaara == 3)
491        {
492            Keyboard.Listen(Key.D1, ButtonState.Pressed, KolmenpelaajanKP, "");
493            Keyboard.Listen(Key.D2, ButtonState.Pressed, KolmenpelaajanYP, "");
494            Keyboard.Listen(Key.H, ButtonState.Pressed, ohjevalikko3p, "");
495        }
496        if (pelaajamaara == 4)
497        {
498            Keyboard.Listen(Key.D1, ButtonState.Pressed, NeljanpelaajanKP, "");
499            Keyboard.Listen(Key.D2, ButtonState.Pressed, NeljanpelaajanYP, "");
500            Keyboard.Listen(Key.H, ButtonState.Pressed, ohjevalikko4p, "");
501        }
502    }
503
504    void seuraavaKentta()
505    {
506        ClearAll();
507
508        if (pelaajamaara == 3)
509        {
510            lisaaPelaaja3(-100, Level.Bottom + 50);
511        }
512
513        if (pelaajamaara == 4)
514        {
515            lisaaPelaaja3(-100, Level.Bottom + 50);
516            lisaaPelaaja4(200, Level.Bottom + 50);
517        }
518        TeeReunat();
519        if (YP == false) TeePistenaytot();
520
521        Gravity = new Vector(0, -600);
522
523        luoKentta();
524        lisaaNappaimet();
525        if (YP == true)
526        {
527            Timer korkeusAjastin = new Timer();
528            korkeusAjastin.Interval = 0.1;
529            korkeusAjastin.Trigger += NaytaKorkeus;
530            Add(korkeusAjastin);
531            korkeusAjastin.Start();
532
533            TeeElamanaytot();
534            lisaaYPNappaimet();
535            p1OnKuplassa = false;
536            p2OnKuplassa = false;
537            p3OnKuplassa = false;
538            p4OnKuplassa = false;
539        }
540    }
541
542    private void lisaaYPNappaimet()
543    {
544        Keyboard.Listen(Key.Down, ButtonState.Pressed, Pelaaja1kupla, "");
545        Keyboard.Listen(Key.S, ButtonState.Pressed, Pelaaja2kupla, "");
546        if (pelaajamaara == 3) Keyboard.Listen(Key.K, ButtonState.Pressed, Pelaaja3kupla, "");
547        if (pelaajamaara == 4) Keyboard.Listen(Key.K, ButtonState.Pressed, Pelaaja3kupla, "");
548    }
549
550    void lisaaPelaaja1kupla(double x, double y)
551    {
552        P1kupla = new PhysicsObject(50, 50);
553        P1kupla.Image = LoadImage("P1bubble");
554        P1kupla.Shape = Shapes.Circle;
555        P1kupla.X = x;
556        P1kupla.Y = y;
557        P1kupla.IgnoresCollisionResponse = true;
558        P1kupla.IgnoresPhysicsLogics = true;
559        P1kupla.Velocity = new Vector(0.0, 50.0);
560        AddCollisionHandler(P1kupla, KasitteleKuplan1Tormays);
561
562        Add(P1kupla);
563    }
564
565    void lisaaPelaaja2kupla(double x, double y)
566    {
567        P2kupla = new PhysicsObject(50, 50);
568        P2kupla.Image = LoadImage("P2bubble");
569        P2kupla.Shape = Shapes.Circle;
570        P2kupla.X = x;
571        P2kupla.Y = y;
572        P2kupla.IgnoresCollisionResponse = true;
573        P2kupla.IgnoresPhysicsLogics = true;
574        P2kupla.Velocity = new Vector(0.0, 50.0);
575        AddCollisionHandler(P2kupla, KasitteleKuplan2Tormays);
576
577        Add(P2kupla);
578    }
579
580    void lisaaPelaaja3kupla(double x, double y)
581    {
582        P3kupla = new PhysicsObject(60, 60);
583        P3kupla.Image = LoadImage("P3bubble");
584        P3kupla.Shape = Shapes.Circle;
585        P3kupla.X = x;
586        P3kupla.Y = y;
587        P3kupla.IgnoresCollisionResponse = true;
588        P3kupla.IgnoresPhysicsLogics = true;
589        P3kupla.Velocity = new Vector(0.0, 50.0);
590        AddCollisionHandler(P3kupla, KasitteleKuplan3Tormays);
591
592        Add(P3kupla);
593    }
594
595    void lisaaPelaaja4kupla(double x, double y)
596    {
597        P4kupla = new PhysicsObject(60, 60);
598        P4kupla.Image = LoadImage("P3bubble");
599        P4kupla.Shape = Shapes.Circle;
600        P4kupla.X = x;
601        P4kupla.Y = y;
602        P4kupla.IgnoresCollisionResponse = true;
603        P4kupla.IgnoresPhysicsLogics = true;
604        P4kupla.Velocity = new Vector(0.0, 50.0);
605        AddCollisionHandler(P4kupla, KasitteleKuplan4Tormays);
606
607        Add(P4kupla);
608    }
609    void Pelaaja1kupla()
610    {
611        if (p1OnKuplassa == false)
612        {
613            lisaaPelaaja1kupla(pelaaja1.X, pelaaja1.Y);
614            p1OnKuplassa = true;
615        }
616        pelaaja1.Destroy();
617    }
618
619    void Pelaaja2kupla()
620    {
621        if (p2OnKuplassa == false)
622        {
623            lisaaPelaaja2kupla(pelaaja2.X, pelaaja2.Y);
624            p2OnKuplassa = true;
625        }
626        pelaaja2.Destroy();
627    }
628
629    void Pelaaja3kupla()
630    {
631        if (p3OnKuplassa == false)
632        {
633            lisaaPelaaja3kupla(pelaaja3.X, pelaaja3.Y);
634            p3OnKuplassa = true;
635        }
636        if (pelaaja3 != null)
637        {
638            pelaaja3.Destroy();
639        }
640    }
641
642    void Pelaaja4kupla()
643    {
644        if (p4OnKuplassa == false)
645        {
646            lisaaPelaaja4kupla(pelaaja4.X, pelaaja4.Y);
647            p4OnKuplassa = true;
648        }
649        pelaaja4.Destroy();
650    }
651
652    void TeePistenaytot()
653    {
654        ValueDisplay pisteNaytto = new ValueDisplay();
655        pisteNaytto.Text = "Pelaaja 1: ";
656        pisteNaytto.X = Screen.Left + 200;
657        pisteNaytto.Y = Screen.Top - 100;
658        pisteNaytto.ValueColor = Color.Red;
659        pisteNaytto.TextColor = Color.Red;
660        pisteNaytto.BindTo(pelaajan1pisteet);
661        Add(pisteNaytto);
662
663        ValueDisplay pisteNaytto2 = new ValueDisplay();
664        pisteNaytto2.Text = "Pelaaja 2: ";
665        pisteNaytto2.X = Screen.Left + 400;
666        pisteNaytto2.Y = Screen.Top - 100;
667        pisteNaytto2.ValueColor = Color.Red;
668        pisteNaytto2.TextColor = Color.Red;
669        pisteNaytto2.BindTo(pelaajan2pisteet);
670        Add(pisteNaytto2);
671
672        if (pelaajamaara == 3)
673        {
674            ValueDisplay pisteNaytto3 = new ValueDisplay();
675            pisteNaytto3.Text = "Pelaaja 3: ";
676            pisteNaytto3.X = Screen.Right - 400;
677            pisteNaytto3.Y = Screen.Top - 100;
678            pisteNaytto3.ValueColor = Color.Red;
679            pisteNaytto3.TextColor = Color.Red;
680            pisteNaytto3.BindTo(pelaajan3pisteet);
681            Add(pisteNaytto3);
682        }
683        if (pelaajamaara == 4)
684        {
685            ValueDisplay pisteNaytto3 = new ValueDisplay();
686            pisteNaytto3.Text = "Pelaaja 3: ";
687            pisteNaytto3.X = Screen.Right - 400;
688            pisteNaytto3.Y = Screen.Top - 100;
689            pisteNaytto3.ValueColor = Color.Red;
690            pisteNaytto3.TextColor = Color.Red;
691            pisteNaytto3.BindTo(pelaajan3pisteet);
692            Add(pisteNaytto3);
693
694            ValueDisplay pisteNaytto4 = new ValueDisplay();
695            pisteNaytto4.Text = "Pelaaja 4: ";
696            pisteNaytto4.X = Screen.Right - 200;
697            pisteNaytto4.Y = Screen.Top - 100;
698            pisteNaytto4.ValueColor = Color.Red;
699            pisteNaytto4.TextColor = Color.Red;
700            pisteNaytto4.BindTo(pelaajan4pisteet);
701            Add(pisteNaytto4);
702        }
703    }
704
705    void TeeElamanaytot()
706    {
707        ValueDisplay elamaNaytto = new ValueDisplay();
708        elamaNaytto.Text = "Pelaaja 1:n elämät: ";
709        elamaNaytto.X = Screen.Left + 150;
710        elamaNaytto.Y = Screen.Top - 100;
711        elamaNaytto.ValueColor = Color.Red;
712        elamaNaytto.TextColor = Color.Red;
713        elamaNaytto.BindTo(pelaajan1elamat);
714        Add(elamaNaytto);
715
716
717        ValueDisplay elamaNaytto2 = new ValueDisplay();
718        elamaNaytto2.Text = "Pelaaja 2:n elämät: ";
719        elamaNaytto2.X = Screen.Left + 400;
720        elamaNaytto2.Y = Screen.Top - 100;
721        elamaNaytto2.ValueColor = Color.Red;
722        elamaNaytto2.TextColor = Color.Red;
723        elamaNaytto2.BindTo(pelaajan2elamat);
724        Add(elamaNaytto2);
725
726        if (pelaajamaara == 3)
727        {
728            ValueDisplay elamaNaytto3 = new ValueDisplay();
729            elamaNaytto3.Text = "Pelaaja 3:n elämät: ";
730            elamaNaytto3.X = Screen.Right - 400;
731            elamaNaytto3.Y = Screen.Top - 100;
732            elamaNaytto3.ValueColor = Color.Red;
733            elamaNaytto3.TextColor = Color.Red;
734            elamaNaytto3.BindTo(pelaajan3elamat);
735            Add(elamaNaytto3);
736        }
737        if (pelaajamaara == 4)
738        {
739            ValueDisplay elamaNaytto3 = new ValueDisplay();
740            elamaNaytto3.Text = "Pelaaja 3:n elämät: ";
741            elamaNaytto3.X = Screen.Right - 400;
742            elamaNaytto3.Y = Screen.Top - 100;
743            elamaNaytto3.ValueColor = Color.Red;
744            elamaNaytto3.TextColor = Color.Red;
745            elamaNaytto3.BindTo(pelaajan3elamat);
746            Add(elamaNaytto3);
747
748            ValueDisplay elamaNaytto4 = new ValueDisplay();
749            elamaNaytto4.Text = "Pelaaja 4:n elämät: ";
750            elamaNaytto4.X = Screen.Right - 150;
751            elamaNaytto4.Y = Screen.Top - 100;
752            elamaNaytto4.ValueColor = Color.Red;
753            elamaNaytto4.TextColor = Color.Red;
754            elamaNaytto4.BindTo(pelaajan4elamat);
755            Add(elamaNaytto4);
756        }
757    }
758
759    void TeeReunat()
760    {
761        vasenReuna = Level.CreateLeftBorder();
762        vasenReuna.Restitution = 0.0;
763        vasenReuna.IsVisible = false;
764
765        alaReuna = Level.CreateBottomBorder();
766        vasenReuna.Restitution = 0.0;
767        vasenReuna.IsVisible = false;
768
769        oikeaReuna = Level.CreateRightBorder();
770        vasenReuna.Restitution = 0.0;
771        vasenReuna.IsVisible = false;
772    }
773
774    void LisaaEitoimiruutu()
775    {
776        Alku = PhysicsObject.CreateStaticObject(1024, 768);
777        Alku.X = 0;
778        Alku.Y = Level.Bottom + 400;
779        Alku.Image = LoadImage("SJeitoimi");
780        Alku.IgnoresCollisionResponse = true;
781        Alku.IgnoresPhysicsLogics = true;
782        Add(Alku);
783    }
784
785    void LisaaAloitusruutu()
786    {
787        Alku = PhysicsObject.CreateStaticObject(1024, 640);
788        Alku.X = 0;
789        Alku.Y = Level.Bottom + 320;
790        Alku.Image = LoadImage("SJpäävalikko");
791        Alku.IgnoresCollisionResponse = true;
792        Alku.IgnoresPhysicsLogics = true;
793        Add(Alku);
794    }
795
796    void TeePelimodivalikko()
797    {
798        Alku = PhysicsObject.CreateStaticObject(1024, 640);
799        Alku.X = 0;
800        Alku.Y = Level.Bottom + 320;
801        Alku.Image = LoadImage("SJpelimodi");
802        Alku.IgnoresCollisionResponse = true;
803        Alku.IgnoresPhysicsLogics = true;
804        Add(Alku);
805    }
806
807    void TeeOhjevalikko()
808    {
809        Alku = PhysicsObject.CreateStaticObject(1024, 640);
810        Alku.X = 0;
811        Alku.Y = Level.Bottom + 320;
812        Alku.Image = LoadImage("SJohjeet");
813        Alku.IgnoresCollisionResponse = true;
814        Alku.IgnoresPhysicsLogics = true;
815        Add(Alku);
816    }
817
818    void TeePelaajaMäärä()
819    {
820        PMäärä = PhysicsObject.CreateStaticObject(1024, 640);
821        PMäärä.X = 0;
822        PMäärä.Y = Level.Bottom + 320;
823        PMäärä.Image = LoadImage("SJpelaajamaara");
824        PMäärä.IgnoresCollisionResponse = true;
825        PMäärä.IgnoresPhysicsLogics = true;
826        Add(PMäärä);
827    }
828
829    void TeeTappiovalikko()
830    {
831        Tappio = PhysicsObject.CreateStaticObject(1024, 640);
832        Camera.Position = new Vector(0, 0);
833        Tappio.X = Camera.Position.X;
834        Tappio.Y = -14680;
835        Tappio.Image = LoadImage("SJparhaatpisteet");
836        Tappio.IgnoresCollisionResponse = true;
837        Tappio.IgnoresPhysicsLogics = true;
838        Add(Tappio);
839    }
840
841    void ohjevalikko2p()
842    {
843        Alku = PhysicsObject.CreateStaticObject(1024, 640);
844        Alku.X = 0;
845        Alku.Y = Level.Bottom + 320;
846        Alku.Image = LoadImage("SJ2pohjeet");
847        Alku.IgnoresCollisionResponse = true;
848        Alku.IgnoresPhysicsLogics = true;
849        Add(Alku);
850        NappiAlkuvalikkoon();
851    }
852
853    void ohjevalikko3p()
854    {
855        Alku = PhysicsObject.CreateStaticObject(1024, 640);
856        Alku.X = 0;
857        Alku.Y = Level.Bottom + 320;
858        Alku.Image = LoadImage("SJ3pohjeet");
859        Alku.IgnoresCollisionResponse = true;
860        Alku.IgnoresPhysicsLogics = true;
861        Add(Alku);
862        NappiAlkuvalikkoon();
863    }
864
865    void ohjevalikko4p()
866    {
867        Alku = PhysicsObject.CreateStaticObject(1024, 640);
868        Alku.X = 0;
869        Alku.Y = Level.Bottom + 320;
870        Alku.Image = LoadImage("SJ4pohjeet");
871        Alku.IgnoresCollisionResponse = true;
872        Alku.IgnoresPhysicsLogics = true;
873        Add(Alku);
874        NappiAlkuvalikkoon();
875    }
876
877    private void NappiAlkuvalikkoon()
878    {
879        Keyboard.Listen(Key.P, ButtonState.Pressed, Alkukentta, "");
880    }
881
882    void voitto()
883    {
884        voittaja = PhysicsObject.CreateStaticObject(1024, 640);
885        Camera.Position = new Vector(0, 0);
886        voittaja.X = Camera.Position.X;
887        voittaja.Y = -14680;
888        if (p1SaiVoiton == true)
889        {
890            voittaja.Image = LoadImage("Smile Jump(pelaaja1voitti)");
891        }
892        if (p2SaiVoiton == true)
893        {
894            voittaja.Image = LoadImage("Smile Jump(pelaaja2voitti)");
895        }
896        if (p3SaiVoiton == true)
897        {
898            voittaja.Image = LoadImage("Smile Jump(pelaaja3voitti)");
899        }
900        if (p4SaiVoiton == true)
901        {
902            voittaja.Image = LoadImage("Smile Jump(pelaaja4voitti)");
903        }
904
905        voittaja.IgnoresCollisionResponse = true;
906        Add(voittaja);
907    }
908
909    void KasittelePallonTormays(PhysicsObject pelaaja1, PhysicsObject kohde)
910    {
911        if (kohde == oikeaReuna)
912        {
913            pelaaja1.X = Level.Left + 30;
914        }
915        else if (kohde == vasenReuna)
916        {
917            pelaaja1.X = Level.Right - 30;
918        }
919    }
920
921    void KasitteleKuplan1Tormays(PhysicsObject kupla, PhysicsObject kohde)
922    {
923        if (kohde == pelaaja2)
924        {
925            lisaaPelaaja1(kupla.X, kupla.Y);
926            kupla.Destroy();
927            lisaaNappaimet();
928            p1OnKuplassa = false;
929        }
930        if (kohde == pelaaja3)
931        {
932            lisaaPelaaja1(kupla.X, kupla.Y);
933            kupla.Destroy();
934            lisaaNappaimet();
935            p1OnKuplassa = false;
936        }
937        if (kohde == pelaaja4)
938        {
939            lisaaPelaaja1(kupla.X, kupla.Y);
940            kupla.Destroy();
941            lisaaNappaimet();
942            p1OnKuplassa = false;
943        }
944    }
945
946    void KasitteleKuplan2Tormays(PhysicsObject kupla, PhysicsObject kohde)
947    {
948        if (kohde == pelaaja1)
949        {
950            lisaaPelaaja2(kupla.X, kupla.Y);
951            kupla.Destroy();
952            lisaaNappaimet();
953            p2OnKuplassa = false;
954        }
955        if (kohde == pelaaja3)
956        {
957            lisaaPelaaja2(kupla.X, kupla.Y);
958            kupla.Destroy();
959            lisaaNappaimet();
960            p2OnKuplassa = false;
961        }
962        if (kohde == pelaaja4)
963        {
964            lisaaPelaaja2(kupla.X, kupla.Y);
965            kupla.Destroy();
966            lisaaNappaimet();
967            p2OnKuplassa = false;
968        }
969    }
970
971    void KasitteleKuplan3Tormays(PhysicsObject kupla, PhysicsObject kohde)
972    {
973        if (kohde == pelaaja2)
974        {
975            lisaaPelaaja3(kupla.X, kupla.Y);
976            kupla.Destroy();
977            lisaaNappaimet();
978            p3OnKuplassa = false;
979        }
980        if (kohde == pelaaja1)
981        {
982            lisaaPelaaja3(kupla.X, kupla.Y);
983            kupla.Destroy();
984            lisaaNappaimet();
985            p3OnKuplassa = false;
986        }
987        if (kohde == pelaaja4)
988        {
989            lisaaPelaaja3(kupla.X, kupla.Y);
990            kupla.Destroy();
991            lisaaNappaimet();
992            p3OnKuplassa = false;
993        }
994    }
995
996    void KasitteleKuplan4Tormays(PhysicsObject kupla, PhysicsObject kohde)
997    {
998        if (kohde == pelaaja2)
999        {
1000            lisaaPelaaja4(kupla.X, kupla.Y);
1001            kupla.Destroy();
1002            lisaaNappaimet();
1003            p4OnKuplassa = false;
1004        }
1005        if (kohde == pelaaja3)
1006        {
1007            lisaaPelaaja4(kupla.X, kupla.Y);
1008            kupla.Destroy();
1009            lisaaNappaimet();
1010            p4OnKuplassa = false;
1011        }
1012        if (kohde == pelaaja1)
1013        {
1014            lisaaPelaaja4(kupla.X, kupla.Y);
1015            kupla.Destroy();
1016            lisaaNappaimet();
1017            p4OnKuplassa = false;
1018        }
1019    }
1020
1021    void TasonTormays(PhysicsObject taso, PhysicsObject kohde)
1022    {
1023        if (kohde == DownReuna)
1024        {
1025            taso.Destroy();
1026        }
1027
1028    }
1029
1030    void Pelaaja1Osui(PhysicsObject p1, PhysicsObject kohde)
1031    {
1032        if (kohde == DownReuna)
1033        {
1034            if (YP == true && p1elamamenetys == false)
1035            {
1036                p1elamamenetys = true;
1037                pelaajan1elamat.Value--;
1038                KuplaSyntymä1.Start();
1039            }
1040            p1.Destroy();
1041            ControllerOne.Vibrate(1, 1, 0.0, 0.0, 0.5);
1042        }
1043
1044        if (kohde.Tag.ToString() == "vihollinen")
1045        {
1046            if (YP == true && p1elamamenetys == false)
1047            {
1048                p1elamamenetys = true;
1049                pelaajan1elamat.Value--;
1050                KuplaSyntymä1.Start();
1051            }
1052            kohde.Destroy();
1053            p1.Destroy();
1054            ControllerOne.Vibrate(1, 1, 0.0, 0.0, 0.5);
1055        }
1056
1057    }
1058
1059    void Pelaaja2Osui(PhysicsObject p2, PhysicsObject kohde)
1060    {
1061        if (kohde == DownReuna)
1062        {
1063            p2.Destroy();
1064            ControllerTwo.Vibrate(1, 1, 0.0, 0.0, 0.5);
1065            if (YP == true && p2elamamenetys == false)
1066            {
1067                p2elamamenetys = true;
1068                pelaajan2elamat.Value--;
1069                KuplaSyntymä2.Start();
1070            }
1071        }
1072
1073        if (kohde.Tag.ToString() == "vihollinen")
1074        {
1075            kohde.Destroy();
1076            p2.Destroy();
1077            ControllerTwo.Vibrate(1, 1, 0.0, 0.0, 0.5);
1078            if (YP == true && p2elamamenetys == false)
1079            {
1080                p2elamamenetys = true;
1081                pelaajan2elamat.Value--;
1082                KuplaSyntymä2.Start();
1083            }
1084        }
1085
1086    }
1087
1088    void Pelaaja3Osui(PhysicsObject p3, PhysicsObject kohde)
1089    {
1090        if (kohde == DownReuna)
1091        {
1092            p3.Destroy();
1093            ControllerThree.Vibrate(1, 1, 0.0, 0.0, 0.5);
1094            if (YP == true && p3elamamenetys == false)
1095            {
1096                p3elamamenetys = true;
1097                pelaajan3elamat.Value--;
1098                KuplaSyntymä3.Start();
1099            }
1100        }
1101
1102        if (kohde.Tag.ToString() == "vihollinen")
1103        {
1104            kohde.Destroy();
1105            p3.Destroy();
1106            ControllerThree.Vibrate(1, 1, 0.0, 0.0, 0.5);
1107            if (YP == true && p3elamamenetys == false)
1108            {
1109                p3elamamenetys = true;
1110                pelaajan3elamat.Value--;
1111                KuplaSyntymä3.Start();
1112            }
1113        }
1114
1115    }
1116
1117    void Pelaaja4Osui(PhysicsObject p4, PhysicsObject kohde)
1118    {
1119        if (kohde == DownReuna)
1120        {
1121            if (YP == true && p4elamamenetys == false)
1122            {
1123                p4elamamenetys = true;
1124                pelaajan4elamat.Value--;
1125                KuplaSyntymä4.Start();
1126            }
1127            p4.Destroy();
1128            ControllerFour.Vibrate(1, 1, 0.0, 0.0, 0.5);
1129        }
1130
1131        if (kohde.Tag.ToString() == "vihollinen")
1132        {
1133            if (YP == true && p4elamamenetys == false)
1134            {
1135                p4elamamenetys = true;
1136                pelaajan4elamat.Value--;
1137                KuplaSyntymä4.Start();
1138            }
1139            kohde.Destroy();
1140            p4.Destroy();
1141            ControllerFour.Vibrate(1, 1, 0.0, 0.0, 0.5);
1142        }
1143
1144    }
1145
1146    void VihollisKaanty(PhysicsObject vihulainen, PhysicsObject kohde)
1147    {
1148        if (kohde == vasenReuna)
1149        {
1150            vihulainen.Velocity = new Vector(220.0, 0.0);
1151        }
1152        if (kohde == oikeaReuna)
1153        {
1154            vihulainen.Velocity = new Vector(-220.0, 0.0);
1155        }
1156
1157    }
1158
1159    void Nappainohje()
1160    {
1161        MessageDisplay.Add("Katso ohjeet valikosta");
1162    }
1163
1164    void luoKentta()
1165    {
1166        lisaaTaso(RandomGen.NextDouble(Level.Left + 50, Level.Right - 50), Level.Bottom + 100, 150);
1167
1168        mittari = new TextDisplay();
1169        Add(mittari);
1170
1171        TeeTasot();
1172        vihollistiheytys = 0;
1173        viholliskorkeus = 0;
1174        for (int v = 0; v < 55; v++)
1175        {
1176            viholliskorkeus = viholliskorkeus + 600 - vihollistiheytys;
1177            LisaaVihollinen(RandomGen.NextDouble(Level.Left, Level.Right), Level.Bottom + viholliskorkeus + RandomGen.NextDouble(0.0, 40.0));
1178            vihollistiheytys = vihollistiheytys + 10;
1179        }
1180
1181        LisaaDownReuna();
1182
1183        Level.Background.CreateGradient(Color.SkyBlue, Color.DarkBlue);
1184        lisaaPelaaja1(0, Level.Bottom + 50);
1185        lisaaPelaaja2(100, Level.Bottom + 50);
1186        Teeaikalaskurit();
1187        TeeKuplaSyntymälaskurit();
1188
1189        Level.Width = 1024;
1190        Level.Height = 30000;
1191
1192
1193        if (pelaajamaara == 2)
1194        {
1195            Ohjeet2pelaajaa();
1196        }
1197        if (pelaajamaara == 3)
1198        {
1199            Ohjeet3pelaajaa();
1200        }
1201        if (pelaajamaara == 4)
1202        {
1203            Ohjeet3pelaajaa();
1204        }
1205        aloituspaikka = pelaaja1.Position;
1206    }
1207
1208    private void TeeTasot()
1209    {
1210        tasokorkeus = 100;
1211        tasoleveys = 150;
1212        for (int i = 0; i < 145; i++)
1213        {
1214            lisaaTaso(RandomGen.NextDouble(Level.Left + 50, -150), Level.Bottom + tasokorkeus + RandomGen.NextDouble(10.0, 15.0), tasoleveys);
1215            lisaaTaso(RandomGen.NextDouble(150, Level.Right - 50), Level.Bottom + tasokorkeus + RandomGen.NextDouble(0.0, 5.0), tasoleveys);
1216            tasokorkeus = tasokorkeus + 170;
1217            tasoleveys = tasoleveys - 1;
1218        }
1219
1220        tasokorkeus = 150;
1221        tasoleveys = 150;
1222        for (int h = 0; h < 75; h++)
1223        {
1224            lisaaTaso(RandomGen.NextDouble(150, -150), Level.Bottom + tasokorkeus + RandomGen.NextDouble(5.0, 15.0), tasoleveys);
1225            tasoleveys = tasoleveys - 2;
1226            tasokorkeus = tasokorkeus + 170;
1227        }
1228    }
1229
1230    void Teeaikalaskurit()
1231    {
1232        aikaLaskuri = new Timer();
1233        aikaLaskuri.Interval = 2;
1234        aikaLaskuri.Trigger += aikaLoppui;
1235        Add(aikaLaskuri);
1236        aikaLaskuri.Start();
1237
1238        aikaLaskuri2 = new Timer();
1239        aikaLaskuri2.Interval = 5;
1240        aikaLaskuri2.Trigger += aikaLoppui2;
1241        Add(aikaLaskuri2);
1242
1243        aikaLaskuri3 = new Timer();
1244        aikaLaskuri3.Interval = 1;
1245        aikaLaskuri3.Trigger += aikaLoppui3;
1246        Add(aikaLaskuri3);
1247    }
1248
1249    void TeeKuplaSyntymälaskurit()
1250    {
1251        KuplaSyntymä1 = new Timer();
1252        KuplaSyntymä1.LimitTimes(1);
1253        KuplaSyntymä1.Interval = Kuplaaika;
1254        KuplaSyntymä1.Trigger += KuplaSyntymä1aika;
1255        Add(KuplaSyntymä1);
1256
1257        KuplaSyntymä2 = new Timer();
1258        KuplaSyntymä2.LimitTimes(1);
1259        KuplaSyntymä2.Interval = Kuplaaika;
1260        KuplaSyntymä2.Trigger += KuplaSyntymä2aika;
1261        Add(KuplaSyntymä2);
1262
1263        KuplaSyntymä3 = new Timer();
1264        KuplaSyntymä3.LimitTimes(1);
1265        KuplaSyntymä3.Interval = Kuplaaika;
1266        KuplaSyntymä3.Trigger += KuplaSyntymä3aika;
1267        Add(KuplaSyntymä3);
1268
1269        KuplaSyntymä4 = new Timer();
1270        KuplaSyntymä4.LimitTimes(1);
1271        KuplaSyntymä4.Interval = Kuplaaika;
1272        KuplaSyntymä4.Trigger += KuplaSyntymä4aika;
1273        Add(KuplaSyntymä4);
1274    }
1275
1276    private void Ohjeet2pelaajaa()
1277    {
1278        Ohje2p = PhysicsObject.CreateStaticObject(800, 200);
1279        Ohje2p.X = 0;
1280        Ohje2p.Y = Level.Bottom + 400;
1281        Ohje2p.Image = LoadImage("Ohje2p");
1282        Ohje2p.IgnoresCollisionResponse = true;
1283        Ohje2p.IgnoresPhysicsLogics = true;
1284        if (YP == false)
1285        {
1286            Add(Ohje2p);
1287        }
1288    }
1289
1290    private void Ohjeet3pelaajaa()
1291    {
1292        Ohje3p = PhysicsObject.CreateStaticObject(800, 200);
1293        Ohje3p.X = 0;
1294        Ohje3p.Y = Level.Bottom + 400;
1295        Ohje3p.Image = LoadImage("Ohje3p");
1296        Ohje3p.IgnoresCollisionResponse = true;
1297        Ohje3p.IgnoresPhysicsLogics = true;
1298        if (YP == false)
1299        {
1300            Add(Ohje3p);
1301        }
1302    }
1303
1304    void lisaaTaso(double x, double y, double leveys)
1305    {
1306        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, 30);
1307        taso.Color = Color.Green;
1308        taso.X = x;
1309        taso.Y = y;
1310        taso.Image = LoadImage("Smile Jump(laatta)");
1311        AddCollisionHandler(taso, TasonTormays);
1312        Add(taso);
1313    }
1314
1315    void lisaaPelaaja1(double x, double y)
1316    {
1317        pelaaja1 = new PlatformCharacter(40, 40);
1318        pelaaja1.Mass = 4.0;
1319        pelaaja1.Shape = Shapes.Circle;
1320        pelaaja1.Image = LoadImage("smile jump(keltainen pelaaja) (2)");
1321        pelaaja1.X = x;
1322        pelaaja1.Y = y;
1323
1324        AddCollisionHandler(pelaaja1, KasittelePallonTormays);
1325
1326        Add(pelaaja1);
1327    }
1328
1329    void lisaaPelaaja2(double x, double y)
1330    {
1331        pelaaja2 = new PlatformCharacter(40, 40);
1332        pelaaja2.Mass = 4.0;
1333        pelaaja2.Shape = Shapes.Circle;
1334        pelaaja2.Image = LoadImage("smile jump (vihreä pelaaja) (2)");
1335        pelaaja2.X = x;
1336        pelaaja2.Y = y;
1337
1338        AddCollisionHandler(pelaaja2, KasittelePallonTormays);
1339
1340        Add(pelaaja2);
1341    }
1342
1343    void lisaaPelaaja3(double x, double y)
1344    {
1345        pelaaja3 = new PlatformCharacter(40, 40);
1346        pelaaja3.Mass = 4.0;
1347        pelaaja3.Shape = Shapes.Circle;
1348        pelaaja3.Image = LoadImage("smile jump(sininen pelaaja)");
1349        pelaaja3.X = x;
1350        pelaaja3.Y = y;
1351
1352        AddCollisionHandler(pelaaja3, KasittelePallonTormays);
1353
1354        Add(pelaaja3);
1355    }
1356
1357    void lisaaPelaaja4(double x, double y)
1358    {
1359        pelaaja4 = new PlatformCharacter(40, 40);
1360        pelaaja4.Mass = 4.0;
1361        pelaaja4.Shape = Shapes.Circle;
1362        pelaaja4.Image = LoadImage("smile jump(pinkki pelaaja)");
1363        pelaaja4.X = x;
1364        pelaaja4.Y = y;
1365
1366        AddCollisionHandler(pelaaja4, KasittelePallonTormays);
1367
1368        Add(pelaaja4);
1369    }
1370
1371    void LisaaVihollinen(double x, double y)
1372    {
1373        PhysicsObject vihollinen = new PhysicsObject(60, 60);
1374        vihollinen.Image = LoadImage("smile jump(vihollinen) (2)");
1375        vihollinen.Tag = "vihollinen";
1376        vihollinen.Shape = Shapes.Circle;
1377        vihollinen.X = x;
1378        vihollinen.Y = y;
1379        vihollinen.IgnoresCollisionResponse = true;
1380        vihollinen.IgnoresPhysicsLogics = true;
1381        vihollinen.Velocity = new Vector(220.0, 0.0);
1382        Add(vihollinen);
1383
1384        AddCollisionHandler(vihollinen, VihollisKaanty);
1385    }
1386
1387    private void aikaLoppui(Timer sender)
1388    {
1389        if (pelaajamaara == 2)
1390        {
1391            Ohje2p.Destroy();
1392        }
1393        AddCollisionHandler(pelaaja1, Pelaaja1Osui);
1394        AddCollisionHandler(pelaaja2, Pelaaja2Osui);
1395        if (pelaajamaara == 3)
1396        {
1397            AddCollisionHandler(pelaaja3, Pelaaja3Osui);
1398            Ohje3p.Destroy();
1399        }
1400        if (pelaajamaara == 4)
1401        {
1402            AddCollisionHandler(pelaaja3, Pelaaja3Osui);
1403            AddCollisionHandler(pelaaja4, Pelaaja4Osui);
1404            Ohje3p.Destroy();
1405        }
1406    }
1407    private void aikaLoppui2(Timer sender)
1408    {
1409        voittaja.Destroy();
1410        p1SaiVoiton = false;
1411        p2SaiVoiton = false;
1412        p3SaiVoiton = false;
1413        p4SaiVoiton = false;
1414        MediaPlayer.Play("Menu");
1415        Alkukentta();
1416
1417    }
1418
1419    private void aikaLoppui3(Timer sender)
1420    {
1421        seuraavaKentta();
1422        MediaPlayer.Play("Menu");
1423        Parhaatpisteetkentta();
1424    }
1425
1426    private void KuplaSyntymä1aika(Timer sender)
1427    {
1428        lisaaPelaaja1kupla(Level.Left + 10, korkein);
1429    }
1430
1431    private void KuplaSyntymä2aika(Timer sender)
1432    {
1433        lisaaPelaaja2kupla(Level.Left + 10, korkein);
1434    }
1435
1436    private void KuplaSyntymä3aika(Timer sender)
1437    {
1438        lisaaPelaaja3kupla(Level.Right - 10, korkein);
1439    }
1440
1441    private void KuplaSyntymä4aika(Timer sender)
1442    {
1443        lisaaPelaaja3kupla(Level.Right - 10, korkein);
1444    }
1445
1446    void lisaaNappaimet()
1447    {
1448        Keyboard.Listen(Key.F1, ButtonState.Pressed, Nappainohje, "Näytä ohjeet");
1449        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
1450
1451        if (pelaajamaara == 2)
1452        {
1453            Keyboard.Listen(Key.Left, ButtonState.Down, LiikuLäski, null, pelaaja1, -18.0);
1454            Keyboard.Listen(Key.Right, ButtonState.Down, LiikuLäski, null, pelaaja1, 18.0);
1455            Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja1, hyppyVoima);
1456
1457            Keyboard.Listen(Key.A, ButtonState.Down, LiikuLäski, null, pelaaja2, -18.0);
1458            Keyboard.Listen(Key.D, ButtonState.Down, LiikuLäski, null, pelaaja2, 18.0);
1459            Keyboard.Listen(Key.W, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja2, hyppyVoima);
1460        }
1461
1462        lisaaGamePadNappaimet(ControllerOne);
1463    }
1464
1465    void lisaaGamePadNappaimet(GamePad controller)
1466    {
1467        controller.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
1468        if (pelaajamaara == 2)
1469        {
1470            ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, LiikuLäski, null, pelaaja1, -18.0);
1471            ControllerOne.Listen(Button.DPadRight, ButtonState.Down, LiikuLäski, null, pelaaja1, 18.0);
1472            ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyVoima);
1473
1474            ControllerTwo.Listen(Button.DPadLeft, ButtonState.Down, LiikuLäski, null, pelaaja2, -18.0);
1475            ControllerTwo.Listen(Button.DPadRight, ButtonState.Down, LiikuLäski, null, pelaaja2, 18.0);
1476            ControllerTwo.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja2, hyppyVoima);
1477        }
1478        if (pelaajamaara == 3)
1479        {
1480            Keyboard.Listen(Key.Left, ButtonState.Down, LiikuLäski, null, pelaaja1, -18.0);
1481            Keyboard.Listen(Key.Right, ButtonState.Down, LiikuLäski, null, pelaaja1, 18.0);
1482            Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja1, hyppyVoima);
1483
1484            Keyboard.Listen(Key.A, ButtonState.Down, LiikuLäski, null, pelaaja2, -18.0);
1485            Keyboard.Listen(Key.D, ButtonState.Down, LiikuLäski, null, pelaaja2, 18.0);
1486            Keyboard.Listen(Key.W, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja2, hyppyVoima);
1487
1488            Keyboard.Listen(Key.J, ButtonState.Down, LiikuLäski, null, pelaaja3, -18.0);
1489            Keyboard.Listen(Key.L, ButtonState.Down, LiikuLäski, null, pelaaja3, 18.0);
1490            Keyboard.Listen(Key.I, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja3, hyppyVoima);
1491
1492            ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, LiikuLäski, null, pelaaja1, -18.0);
1493            ControllerOne.Listen(Button.DPadRight, ButtonState.Down, LiikuLäski, null, pelaaja1, 18.0);
1494            ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyVoima);
1495
1496            ControllerTwo.Listen(Button.DPadLeft, ButtonState.Down, LiikuLäski, null, pelaaja2, -18.0);
1497            ControllerTwo.Listen(Button.DPadRight, ButtonState.Down, LiikuLäski, null, pelaaja2, 18.0);
1498            ControllerTwo.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja2, hyppyVoima);
1499
1500            ControllerThree.Listen(Button.DPadLeft, ButtonState.Down, LiikuLäski, null, pelaaja3, -18.0);
1501            ControllerThree.Listen(Button.DPadRight, ButtonState.Down, LiikuLäski, null, pelaaja3, 18.0);
1502            ControllerThree.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja3, hyppyVoima);
1503        }
1504
1505        if (pelaajamaara == 4)
1506        {
1507            Keyboard.Listen(Key.Left, ButtonState.Down, LiikuLäski, null, pelaaja1, -18.0);
1508            Keyboard.Listen(Key.Right, ButtonState.Down, LiikuLäski, null, pelaaja1, 18.0);
1509            Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja1, hyppyVoima);
1510
1511            Keyboard.Listen(Key.A, ButtonState.Down, LiikuLäski, null, pelaaja2, -18.0);
1512            Keyboard.Listen(Key.D, ButtonState.Down, LiikuLäski, null, pelaaja2, 18.0);
1513            Keyboard.Listen(Key.W, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja2, hyppyVoima);
1514
1515            Keyboard.Listen(Key.J, ButtonState.Down, LiikuLäski, null, pelaaja3, -18.0);
1516            Keyboard.Listen(Key.L, ButtonState.Down, LiikuLäski, null, pelaaja3, 18.0);
1517            Keyboard.Listen(Key.I, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja3, hyppyVoima);
1518
1519            ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, LiikuLäski, null, pelaaja1, -18.0);
1520            ControllerOne.Listen(Button.DPadRight, ButtonState.Down, LiikuLäski, null, pelaaja1, 18.0);
1521            ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyVoima);
1522
1523            ControllerTwo.Listen(Button.DPadLeft, ButtonState.Down, LiikuLäski, null, pelaaja2, -18.0);
1524            ControllerTwo.Listen(Button.DPadRight, ButtonState.Down, LiikuLäski, null, pelaaja2, 18.0);
1525            ControllerTwo.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja2, hyppyVoima);
1526
1527            ControllerThree.Listen(Button.DPadLeft, ButtonState.Down, LiikuLäski, null, pelaaja3, -18.0);
1528            ControllerThree.Listen(Button.DPadRight, ButtonState.Down, LiikuLäski, null, pelaaja3, 18.0);
1529            ControllerThree.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja3, hyppyVoima);
1530
1531            ControllerFour.Listen(Button.DPadLeft, ButtonState.Down, LiikuLäski, null, pelaaja4, -18.0);
1532            ControllerFour.Listen(Button.DPadRight, ButtonState.Down, LiikuLäski, null, pelaaja4, 18.0);
1533            ControllerFour.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja4, hyppyVoima);
1534        }
1535    }
1536
1537    void liikuta(PlatformCharacter hahmo, double nopeus)
1538    {
1539        hahmo.Walk(nopeus);
1540    }
1541
1542    void hyppaa(PlatformCharacter hahmo, double voima)
1543    {
1544        hahmo.Jump(voima);
1545    }
1546
1547    /// <summary>
1548    /// DownReuna tuhoaa pelaajat ja tasot, jotka ovat
1549    /// ruudun alapuolella.
1550    /// </summary>
1551    void LisaaDownReuna()
1552    {
1553        DownReuna = new PhysicsObject(2000, 100);
1554        DownReuna.X = 0;
1555        DownReuna.Y = Level.Bottom + 50;
1556        DownReuna.IgnoresCollisionResponse = true;
1557        DownReuna.IgnoresGravity = true;
1558        Add(DownReuna);
1559    }
1560    void Kahdenpelaajanpeli()
1561    {
1562        pelaajamaara = 2;
1563        Pelimodikentta();
1564    }
1565
1566    void KahdenpelaajanYP()
1567    {
1568        pelaajamaara = 2;
1569        YP = true;
1570        seuraavaKentta();
1571        MediaPlayer.Play("E Api");
1572    }
1573
1574    void KahdenpelaajanKP()
1575    {
1576        pelaajamaara = 2;
1577        YP = false;
1578        seuraavaKentta();
1579        MediaPlayer.Play("E Api");
1580    }
1581
1582    void Kolmenpelaajanpeli()
1583    {
1584        pelaajamaara = 3;
1585        Pelimodikentta();
1586    }
1587
1588    void KolmenpelaajanYP()
1589    {
1590        pelaajamaara = 3;
1591        YP = true;
1592        seuraavaKentta();
1593        MediaPlayer.Play("E Api");
1594    }
1595
1596    void KolmenpelaajanKP()
1597    {
1598        pelaajamaara = 3;
1599        YP = false;
1600        seuraavaKentta();
1601        MediaPlayer.Play("E Api");
1602    }
1603
1604    void Neljanpelaajanpeli()
1605    {
1606        pelaajamaara = 4;
1607        Pelimodikentta();
1608    }
1609
1610    void NeljanpelaajanYP()
1611    {
1612        pelaajamaara = 4;
1613        YP = true;
1614        seuraavaKentta();
1615        MediaPlayer.Play("E Api");
1616    }
1617
1618    void NeljanpelaajanKP()
1619    {
1620        pelaajamaara = 4;
1621        YP = false;
1622        seuraavaKentta();
1623        MediaPlayer.Play("E Api");
1624    }
1625
1626    void jokuvoitti()
1627    {
1628        seuraavaKentta();
1629        ClearAll();
1630        pelaajamaara = 0;
1631        voitto();
1632        aikaLaskuri2.Start();
1633    }
1634
1635    void NaytaKorkeus(Timer sender)
1636    {
1637        korkeus = Math.Round((aloituspaikka.Y + korkein + 29932), 0);
1638        mittari.Text = "Korkeus: " + korkeus;
1639        mittari.X = 0;
1640        mittari.Y = Screen.Top - 100;
1641    }
1642
1643    void LiikuLäski(PhysicsObject SJpelaaja, double nopeus)
1644    {
1645        SJpelaaja.Velocity += Vector.FromLengthAndAngle(nopeus, SJpelaaja.Angle);
1646    }
1647
1648    protected override void Update(Time time)
1649    {
1650        PlatformCharacter highest = pelaaja1;
1651        if (pelaaja2 != null && pelaaja2.Y > highest.Y) highest = pelaaja2;
1652        if (pelaaja3 != null && pelaaja3.Y > highest.Y) highest = pelaaja3;
1653        if (pelaaja4 != null && pelaaja4.Y > highest.Y) highest = pelaaja4;
1654
1655        korkein = highest.Y;
1656
1657        Camera.Follow(highest);
1658        if (YP == true)
1659        {
1660            if (P1kupla != null && P1kupla.Y > highest.Y)
1661            {
1662                P1kupla.Velocity = new Vector(0.0, -50.0);
1663            }
1664            if (P1kupla != null && P1kupla.Y < highest.Y)
1665            {
1666                P1kupla.Velocity = new Vector(0.0, 50.0);
1667            }
1668            if (P2kupla != null && P2kupla.Y > highest.Y)
1669            {
1670                P2kupla.Velocity = new Vector(0.0, -50.0);
1671            }
1672            if (P2kupla != null && P2kupla.Y < highest.Y)
1673            {
1674                P2kupla.Velocity = new Vector(0.0, 50.0);
1675            }
1676            if (P3kupla != null && P3kupla.Y > highest.Y)
1677            {
1678                P3kupla.Velocity = new Vector(0.0, -50.0);
1679            }
1680            if (P3kupla != null && P3kupla.Y < highest.Y)
1681            {
1682                P3kupla.Velocity = new Vector(0.0, 50.0);
1683            }
1684            if (P4kupla != null && P4kupla.Y > highest.Y)
1685            {
1686                P4kupla.Velocity = new Vector(0.0, -50.0);
1687            }
1688            if (P4kupla != null && P4kupla.Y < highest.Y)
1689            {
1690                P4kupla.Velocity = new Vector(0.0, 50.0);
1691            }
1692        }
1693
1694        if (pelaajamaara == 3 && YP == true && PeliKäynnissä == true)
1695        {
1696            if (pelaaja1.IsDestroyed() && pelaaja2.IsDestroyed() && pelaaja3.IsDestroyed())
1697            {
1698                aikaLaskuri3.Start();
1699            }
1700        }
1701        else if (pelaajamaara == 3 && YP == false && PeliKäynnissä == true)
1702        {
1703
1704            if (pelaaja3.IsDestroyed() && pelaaja2.IsDestroyed())
1705            {
1706                pelaajan1pisteet.Value++;
1707                if (pelaajan1pisteet >= KPPisteraja)
1708                {
1709                    p1SaiVoiton = true;
1710                    jokuvoitti();
1711                }
1712                else seuraavaKentta();
1713
1714            }
1715            if (pelaaja1.IsDestroyed() && pelaaja2.IsDestroyed())
1716            {
1717                pelaajan3pisteet.Value++;
1718                if (pelaajan3pisteet >= KPPisteraja)
1719                {
1720                    p3SaiVoiton = true;
1721                    jokuvoitti();
1722                }
1723                else seuraavaKentta();
1724
1725            }
1726            if (pelaaja1.IsDestroyed() && pelaaja3.IsDestroyed())
1727            {
1728                pelaajan2pisteet.Value++;
1729                if (pelaajan2pisteet >= KPPisteraja)
1730                {
1731                    p2SaiVoiton = true;
1732                    jokuvoitti();
1733                }
1734                else seuraavaKentta();
1735            }
1736        }
1737        if (pelaajamaara == 4 && YP == true && PeliKäynnissä == true)
1738        {
1739            if (pelaaja1.IsDestroyed() && pelaaja2.IsDestroyed() && pelaaja3.IsDestroyed() && pelaaja4.IsDestroyed())
1740            {
1741                aikaLaskuri3.Start();
1742            }
1743        }
1744        else if (pelaajamaara == 4 && YP == false && PeliKäynnissä == true)
1745        {
1746            if (pelaaja1.IsDestroyed() && pelaaja2.IsDestroyed() && pelaaja3.IsDestroyed())
1747            {
1748                pelaajan4pisteet.Value++;
1749                if (pelaajan4pisteet >= KPPisteraja)
1750                {
1751                    p4SaiVoiton = true;
1752                    jokuvoitti();
1753                }
1754                else seuraavaKentta();
1755            }
1756            if (pelaaja1.IsDestroyed() && pelaaja2.IsDestroyed() && pelaaja4.IsDestroyed())
1757            {
1758                pelaajan3pisteet.Value++;
1759                if (pelaajan3pisteet >= KPPisteraja)
1760                {
1761                    p3SaiVoiton = true;
1762                    jokuvoitti();
1763                }
1764                else seuraavaKentta();
1765            }
1766            if (pelaaja1.IsDestroyed() && pelaaja4.IsDestroyed() && pelaaja3.IsDestroyed())
1767            {
1768                pelaajan2pisteet.Value++;
1769                if (pelaajan2pisteet >= KPPisteraja)
1770                {
1771                    p2SaiVoiton = true;
1772                    jokuvoitti();
1773                }
1774                else seuraavaKentta();
1775            }
1776            if (pelaaja4.IsDestroyed() && pelaaja2.IsDestroyed() && pelaaja3.IsDestroyed())
1777            {
1778                pelaajan1pisteet.Value++;
1779                if (pelaajan1pisteet >= KPPisteraja)
1780                {
1781                    p1SaiVoiton = true;
1782                    jokuvoitti();
1783                }
1784                else seuraavaKentta();
1785            }
1786        }
1787
1788        if (pelaajamaara == 2 && YP == true && PeliKäynnissä == true)
1789        {
1790            if (pelaaja1.IsDestroyed() && pelaaja2.IsDestroyed())
1791            {
1792                aikaLaskuri3.Start();
1793            }
1794        }
1795        else if (pelaajamaara == 2 && YP == false && PeliKäynnissä == true)
1796        {
1797            if (pelaaja2.IsDestroyed())
1798            {
1799                pelaajan1pisteet.Value++;
1800                if (pelaajan1pisteet >= KPPisteraja)
1801                {
1802                    p1SaiVoiton = true;
1803                    jokuvoitti();
1804                }
1805                else seuraavaKentta();
1806            }
1807
1808            if (pelaaja1.IsDestroyed())
1809            {
1810
1811                pelaajan2pisteet.Value++;
1812                if (pelaajan2pisteet >= KPPisteraja)
1813                {
1814                    p2SaiVoiton = true;
1815                    jokuvoitti();
1816                }
1817                else seuraavaKentta();
1818            }
1819        }
1820
1821        // Tämä pitää huolen siitä, että kun kamera menee ylöspäin, niin kameran
1822        // alapuolella olevat asiat tuhoutuvat.
1823        DownReuna.Y = Camera.Position.Y - 400;
1824        base.Update(time);
1825    }
1826}
Note: See TracBrowser for help on using the repository browser.