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

Revision 1248, 58.5 KB checked in by vilvaini, 13 years ago (diff)

TODELLA paljon uusia ominaisuuksia mm. uudet valikot, uusi pelimodi: yhteistyöpelimuoto, Parhaat pisteet lista ja paljon muuta.

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