source: 2012/27/HenrikS/MasaMajavanMaailma/MasaMajavanMaailma/MasaMajavanMaailma/Peli.cs @ 3621

Revision 3621, 23.0 KB checked in by hesasnel, 11 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Peli : PhysicsGame
10{
11    const double nopeus = 400;
12    const double hyppyNopeus = 1000;
13    const double lentonopeus = 10000;
14    const int RUUDUN_KOKO = 40;
15
16    PlatformCharacter pelaaja1;
17    DoubleMeter ESmittari = new DoubleMeter(0);
18    DoubleMeter Elama = new DoubleMeter(0);
19    IntMeter kepit = new IntMeter(0);
20
21    Image pelaajanKuvaOikea = LoadImage("Masaoikea");
22    Image[] pelaajanKavelykuvatOikea = LoadImages("Masaoikea", "Masajuoksuoikea");
23    Image[] pelaajanKavelykuvatVasen = LoadImages("Masavasen", "Masajuoksuvasen");
24
25    Image tahtiKuva = LoadImage("tahti");
26    Image pelaajanKuvaVasen = LoadImage("Masavasen");
27    Image PelaajajuokseeOikea = LoadImage("Masajuoksuvasen");
28    Image PelaajajuokseeVasen = LoadImage("Masajuoksuoikea");
29    Image Pelaajalentaa = LoadImage("Masalentaa");
30    Image Jetpack = LoadImage("Jetpak");
31    Image Polttoaine = LoadImage("Euroshopper");
32    Image ruohikko = LoadImage("Maanpinta");
33    Image multa = LoadImage("Multa");
34    Image Kiitara = LoadImage("Kitara");
35    Image masahakkaaOikea = LoadImage("Masakitara");
36    Image masahakkaaOikeaPAM = LoadImage("MasakitaraPAM");
37    Image tausta = LoadImage("Tausta");
38    Image lootikko = LoadImage("Laatikko");
39    Image masahakkaaVasen = LoadImage("MasakitaraVasen");
40    Image masahakkaaVasenTUM = LoadImage("MasakitaraTUM");
41   
42    Image Maaali = LoadImage("Maali");
43    Image vasenlookku = LoadImage("Loukku toisin päin");
44    Image lookku = LoadImage("Loukku");
45    Image loukkuhyokkaus = LoadImage("Loukkuhyökkäys");
46    Image loukkuhyokkausvasen = LoadImage("LoukkuhyökkäysVasen");
47    // Image kyltti = LoadImage("Kyltti");
48
49    ExplosionSystem hajotus;
50    ExplosionSystem hajotus2;
51
52    bool masaKatsooOikealle = true;
53    bool masaLyo = false;
54
55    SoundEffect maaliAani = LoadSoundEffect("maali");
56    int kenttatilanne = 1;
57
58    bool SkipFrame = false;
59
60    public override void Begin()
61    {
62        aloitapeli(kenttatilanne);
63        lisaaKeppimittari();
64        lisaaElamamittari();
65
66        hajotus = new ExplosionSystem(LoadImage("Lentävälauta"), 50);
67
68        Add(hajotus);
69
70        hajotus2 = new ExplosionSystem(LoadImage("Hammas"), 50);
71        hajotus2.MinScale = 35;
72        hajotus2.MaxScale = 35;
73        Add(hajotus2);
74    }
75
76    protected override void Update(Time time)
77    {
78        base.Update(time);
79
80        if (kepit.Value == 100)
81        {
82
83            Elama.MaxValue += 5;
84            Elama.Value = Elama.MaxValue;
85            kepit.Value = 0;
86        }
87    }
88    void aloitapeli(int kenttanumero)
89    {
90        ClearAll();
91        Gravity = new Vector(0, -1000);
92        if (kenttanumero == 1)
93        {
94            luoKentta();
95        }
96        //if (kenttanumero == 2)
97        // {
98        //     luokentta2();
99        //}
100        lisaaNappaimet();
101
102        Camera.Follow(pelaaja1);
103        Camera.ZoomFactor = 1.2;
104        Camera.StayInLevel = true;
105    }
106
107    void luoKentta()
108    {
109        TileMap kentta = TileMap.FromFile("kentta1.txt");
110       
111        kentta.SetTileMethod('*', lisaaTahti);
112        kentta.SetTileMethod('M', lisaaPelaaja);
113        kentta.SetTileMethod('O', lisaaMaankamara);
114        kentta.SetTileMethod('S', lisaaMaa);
115        kentta.SetTileMethod('J', lisaaJetpak);
116        kentta.SetTileMethod('E', lisaaES);
117        kentta.SetTileMethod('L', lisaaLaatikko);
118        kentta.SetTileMethod('K', lisaaKitara);
119        kentta.SetTileMethod('m', lisaaMaali);
120        kentta.SetTileMethod('l', lisaaloukku);
121        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
122
123        Level.CreateBorders();
124        Level.BackgroundColor = Color.DarkBlue;
125        GameObject taustakuva = new GameObject(Screen.Width, Screen.Height);
126        taustakuva.Image = tausta;
127        Add(taustakuva, -2);
128        Level.Background.FitToLevel();
129        Layers[-2].RelativeTransition = new Vector(0.1, 0.1);
130    }
131    //  void luokentta2()
132    //{
133    //   TileMap kentta2 = TileMap.FromFile("kentta2.txt");
134    // kentta2['#'] = lisaaTaso;
135    //    kentta2['*'] = lisaaTahti;
136    //    kentta2['M'] = lisaaPelaaja;
137    //    kentta2['O'] = lisaaMaankamara;
138    //    kentta2['S'] = lisaaMaa;
139    //    kentta2['J'] = lisaaJetpak;
140    //    kentta2['E'] = lisaaES;
141    //    kentta2['L'] = lisaaLaatikko;
142    //    kentta2['K'] = lisaaKitara;
143    //    kentta2['m'] = lisaaMaali;
144    //    //kentta2['k'] = lisaaKyltti;
145    //    kentta2.Insert(RUUDUN_KOKO, RUUDUN_KOKO);
146    //    Level.CreateBorders();
147    //    Level.BackgroundColor = Color.DarkBlue;
148    //    GameObject taustakuva = new GameObject(Screen.Width, Screen.Height);
149    //    taustakuva.Image = tausta;
150    //    Level.Background.FitToLevel();
151    //    Add(taustakuva, -2);
152    //    Layers[-2].RelativeTransition = new Vector(0.1, 0.1);
153    //}
154
155    void lisaaTaso(Vector paikka, double leveys, double korkeus)
156    {
157        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
158        taso.Color = Color.Green;
159        taso.Position = paikka;
160        taso.Tag = "taso";
161        Add(taso);
162    }
163
164    void lisaaLaatikko(Vector paikka, double leveys, double korkeus)
165    {
166        PhysicsObject laatikko = PhysicsObject.CreateStaticObject(200, 200);
167        laatikko.Image = lootikko;
168        laatikko.Tag = "laatikko";
169        laatikko.Position = paikka;
170        Add(laatikko);
171    }
172
173    void lisaaloukku(Vector paikka, double leveys, double korkeus)
174    {
175        PhysicsObject loukku = new PhysicsObject(110, 115);
176        loukku.Image = vasenlookku;
177        loukku.IgnoresCollisionResponse = true;
178        loukku.IgnoresGravity = true;
179        loukku.Tag = "vasenloukku";
180        loukku.Shape = Shape.FromImage(vasenlookku);
181
182        Timer vartiointi = new Timer();
183        vartiointi.Interval = 0.1;
184        vartiointi.Timeout += delegate { vihollishyokkaus(loukku, vartiointi); };
185        vartiointi.Start();
186        AddCollisionHandler(loukku, delegate(PhysicsObject l, PhysicsObject kohde) { LoukkuOsuu(loukku, kohde, vartiointi); });
187        loukku.Position = paikka;
188        Add(loukku);
189    }
190
191
192    void lisaaoikealoukku(Vector paikka, double leveys, double korkeus)
193    {
194        PhysicsObject oikealoukku = PhysicsObject.CreateStaticObject(60, 60);
195        oikealoukku.Image = lookku;
196        oikealoukku.Tag = "loukku";
197        oikealoukku.Position = paikka;
198        Add(oikealoukku);
199    }
200    void lisaaKitara(Vector paikka, double leveys, double korkeus)
201    {
202        PhysicsObject kitara = PhysicsObject.CreateStaticObject(65, 120);
203        kitara.IgnoresCollisionResponse = true;
204        kitara.Image = Kiitara;
205        kitara.Tag = "Kitara";
206        kitara.Position = paikka;
207        Add(kitara);
208    }
209    // PhysicsObject lisaaKyltti()
210    //{
211    //  KYLTTI = PhysicsObject.CreateStaticObject(75, 120);
212    //kylttI.Image = kyltti;
213    //kylttI.Tag = "Kyltti";
214    //return KYLTTI;
215    //}
216    void lisaaTahti(Vector paikka, double leveys, double korkeus)
217    {
218        PhysicsObject tahti = PhysicsObject.CreateStaticObject(70, 60);
219        tahti.IgnoresCollisionResponse = true;
220        tahti.Shape = Shape.Circle;
221        tahti.Image = tahtiKuva;
222        tahti.Tag = "tahti";
223        tahti.Position = paikka;
224        Add(tahti);
225    }
226    void lisaaMaankamara(Vector paikka, double leveys, double korkeus)
227    {
228        PhysicsObject maankamara = PhysicsObject.CreateStaticObject(40, 40);
229        maankamara.Image = ruohikko;
230        maankamara.Position = paikka;
231        maankamara.Tag = "maankamara";
232        Add(maankamara);
233
234
235    }
236    void lisaaMaa(Vector paikka, double leveys, double korkeus)
237    {
238        PhysicsObject maa = PhysicsObject.CreateStaticObject(40, 40);
239        maa.Image = multa;
240        maa.Position = paikka;
241        maa.Tag = "maa";
242        Add(maa);
243    }
244
245    void lisaaJetpak(Vector paikka, double leveys, double korkeus)
246    {
247        PhysicsObject jetpak = PhysicsObject.CreateStaticObject(65, 90);
248        jetpak.IgnoresCollisionResponse = true;
249        jetpak.Image = Jetpack;
250        jetpak.Tag = "jetpak";
251        jetpak.Position = paikka;
252        Add(jetpak);
253    }
254
255    void lisaaES(Vector paikka, double leveys, double korkeus)
256    {
257        PhysicsObject ES = PhysicsObject.CreateStaticObject(40, 80);
258        ES.Image = Polttoaine;
259        ES.IgnoresCollisionResponse = true;
260        ES.Tag = "ES";
261        ES.Position = paikka;
262        Add(ES);
263    }
264    void lisaaMaali(Vector paikka, double leveys, double korkeus)
265    {
266        PhysicsObject Maali = PhysicsObject.CreateStaticObject(100, 120);
267        Maali.IgnoresCollisionResponse = true;
268        Maali.Shape = Shape.FromImage(Maaali);
269        Maali.Image = Maaali;
270        Maali.Tag = "Maali";
271        Maali.Position = paikka;
272        Add(Maali);
273
274
275    }
276
277    void lisaaPelaaja(Vector paikka, double leveys, double korkeus)
278    {
279        pelaaja1 = new PlatformCharacter(80, 120);
280        pelaaja1.CollisionIgnoreGroup = 1;
281        pelaaja1.Tag = "pelaaja";
282        PelaajanAnimaatiot();
283        //pelaaja1.Animation = new Animation(Pelaajalentaa);
284        //pelaaja1.Animation.Start();
285        pelaaja1.Mass = 4.0;
286        // pelaaja1.Image = pelaajanKuva;
287        AddCollisionHandler(pelaaja1, osuTahteen);
288        AddCollisionHandler(pelaaja1, osuJetpakiin);
289        AddCollisionHandler(pelaaja1, "laatikko", osuLaatikkoon);
290        AddCollisionHandler(pelaaja1, osuKitaraan);
291        AddCollisionHandler(pelaaja1, osuMaaliin);
292        AddCollisionHandler(pelaaja1, osuKylttiin);
293        AddCollisionHandler(pelaaja1, osuLoukkuun);
294        // if (!masaKatsooOikealla)
295        //   pelaaja1.Shape = Shape.FromImage(Masavasen);
296
297        //else
298        //  pelaaja1.Shape = Shape.FromImage(Masaoikea);
299
300        pelaaja1.Position = paikka;
301        Add(pelaaja1, 1);
302    }
303
304    void PelaajanAnimaatiot()
305    {
306        pelaaja1.RightWalkingAnimation = new Animation(pelaajanKavelykuvatOikea);
307        pelaaja1.RightWalkingAnimation.FPS = 10;
308        pelaaja1.RightWalkingAnimation.Start();
309        pelaaja1.LeftWalkingAnimation = new Animation(pelaajanKavelykuvatVasen);
310        pelaaja1.LeftWalkingAnimation.FPS = 10;
311        pelaaja1.LeftWalkingAnimation.Start();
312
313        SkipFrame = true;
314
315    }
316
317    void lisaaNappaimet()
318    {
319        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
320        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
321
322        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
323        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
324        Keyboard.Listen(Key.Space, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
325        Keyboard.Listen(Key.Down, ButtonState.Pressed, hakkaa, "Hakkaa kitaralla", pelaaja1);
326        ControllerOne.Listen(Button.DPadDown, ButtonState.Pressed, hakkaa, "Hakkaa kitaralla", pelaaja1);
327
328
329
330
331        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
332
333        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
334        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
335        ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
336
337
338
339    }
340
341    void lisaaESmittari()
342    {
343        ESmittari = LuoESmittari(600, 500);
344
345    }
346
347    DoubleMeter LuoESmittari(double x, double y)
348    {
349        DoubleMeter mittari = new DoubleMeter(0);
350        Label naytto = new Label();
351        naytto.BindTo(mittari);
352        naytto.X = 300;
353        naytto.Y = 350;
354        naytto.TextColor = Color.LightGreen;
355        naytto.BorderColor = Color.Blue;
356        naytto.Color = Color.DarkBlue;
357        mittari.MaxValue = 20;
358        Add(naytto);
359        return mittari;
360
361
362
363    }
364    void lisaaKeppimittari()
365    {
366        kepit = LuoKeppiMittari(0, 0);
367        Label klapit = new Label("Klapit");
368        klapit.X = -300;
369        klapit.Y = 380;
370        klapit.TextColor = Color.LightGreen;
371        klapit.BorderColor = Color.Blue;
372        klapit.Color = Color.DarkBlue;
373        Add(klapit);
374    }
375    IntMeter LuoKeppiMittari(double x, double y)
376    {
377        IntMeter kepit = new IntMeter(0);
378        Label keppinaytto = new Label();
379        keppinaytto.BindTo(kepit);
380        keppinaytto.X = -300;
381        keppinaytto.Y = 350;
382        keppinaytto.TextColor = Color.LightGreen;
383        keppinaytto.BorderColor = Color.Blue;
384        keppinaytto.Color = Color.DarkBlue;
385
386        Add(keppinaytto);
387       
388        return kepit;
389    }
390    void lisaaElamamittari()
391    {
392        Elama = LuoElamaMittari(0, 0);
393        Label enu = new Label("Terveys");
394        enu.X = 0;
395        enu.Y = 380;
396        enu.TextColor = Color.LightGreen;
397        enu.BorderColor = Color.Blue;
398        enu.Color = Color.DarkBlue;
399        Add(enu);
400    }
401    DoubleMeter LuoElamaMittari(double x, double y)
402    {
403        DoubleMeter elama = new DoubleMeter(10);
404        Label nautto = new Label();
405        nautto.BindTo(elama);
406        nautto.X = 0;
407        nautto.Y = 350;
408        nautto.TextColor = Color.LightGreen;
409        nautto.BorderColor = Color.Blue;
410        nautto.Color = Color.DarkBlue;
411        elama.MaxValue = 10;
412        Add(nautto);
413        return elama;
414
415
416
417    }
418
419    void kaytajetpak(PlatformCharacter hahmo, double nopeus)
420    {
421
422
423
424
425        if (ESmittari.Value > 0.0)
426        {
427            hahmo.Push(new Vector(0, nopeus));
428            ESmittari.Value -= 0.035;
429            pelaaja1.LeftWalkingAnimation = null;
430            pelaaja1.RightWalkingAnimation = null;
431            pelaaja1.RightIdleAnimation = null;
432            pelaaja1.LeftIdleAnimation = null;
433            pelaaja1.Animation = new Animation(Pelaajalentaa);
434            pelaaja1.Animation.Start();
435        }
436
437
438        //pelaaja1.Animation.Start(100);
439    }
440
441    void hakkaa(PlatformCharacter hahmo)
442    {
443        pelaaja1.Width = 170;
444       
445        pelaaja1.RightWalkingAnimation = null;
446        pelaaja1.RightIdleAnimation = null;
447        pelaaja1.LeftWalkingAnimation = null;
448        pelaaja1.LeftIdleAnimation = null;
449        pelaaja1.Animation = null;
450
451
452        if (!masaKatsooOikealle)
453        {
454            pelaaja1.Image = masahakkaaVasen;
455            pelaaja1.Shape = Shape.FromImage(masahakkaaVasen);
456        }
457        else
458        {
459            pelaaja1.Image = masahakkaaOikea;
460            pelaaja1.Shape = Shape.FromImage(masahakkaaOikea);
461        }
462        Timer.SingleShot(0.2, ajastinlaukesi);
463       
464       
465       
466        //pelaaja1.Animation.Stop();
467    }
468
469    void ajastinlaukesi()
470    {
471        if (!masaKatsooOikealle)
472        {
473            pelaaja1.Image = masahakkaaVasenTUM;
474            pelaaja1.Shape = Shape.FromImage(masahakkaaVasenTUM);
475        }
476        else
477        {
478            pelaaja1.Image = masahakkaaOikeaPAM;
479            pelaaja1.Shape = Shape.FromImage(masahakkaaOikeaPAM);
480        }
481        masaLyo = true;
482        Timer.SingleShot(0.2, toinenAjastinlaukesi);
483       
484    }
485
486    void toinenAjastinlaukesi()
487    {
488        pelaaja1.Animation = null;
489        PelaajanAnimaatiot();
490        masaLyo = false;
491        pelaaja1.Width = 75;
492
493    }
494
495    void liikuta(PlatformCharacter hahmo, double nopeus)
496    {
497        if (!SkipFrame)
498        {
499            if (nopeus < 0)
500                masaKatsooOikealle = false;
501            else
502                masaKatsooOikealle = true;
503            hahmo.Walk(nopeus);
504        }
505        else SkipFrame = false;
506    }
507
508    void hyppaa(PlatformCharacter hahmo, double nopeus)
509    {
510        hahmo.Jump(nopeus);
511    }
512
513    void vihollishyokkaus(PhysicsObject loukku, Timer ajastin)
514    {
515        // pelaajan pitää olla loukun vasemmalla puolella 300:n päässä
516        if (loukku.X - pelaaja1.X > -140 && loukku.X - pelaaja1.X < 480 && loukku.Y - pelaaja1.Y < 120 && loukku.Y - pelaaja1.Y > -120)
517        {
518            if (loukku.Image == vasenlookku)
519            {
520                // loukkua pitää nostaa hieman kun alottaa hyökkäyksen,
521                // jottei raavi maata ja jää jumiin
522                loukku.Y = loukku.Y + 25;
523            }
524
525            loukku.Velocity = new Vector(-1000, 0);
526            loukku.Shape = Shape.FromImage(loukkuhyokkausvasen);
527            loukku.Height = 150;
528            loukku.Image = loukkuhyokkausvasen;
529        }
530    }
531
532    void osuTahteen(PhysicsObject hahmo, PhysicsObject kohde)
533    {
534        if (kohde.Tag.ToString() == "tahti")
535        {
536
537            kepit.Value += 1;
538            kohde.Destroy();
539        }
540
541    }
542    void osuLoukkuun(PhysicsObject hahmo, PhysicsObject kohde)
543    {
544        if (kohde.Tag.ToString() == "vasenloukku" && (masaLyo == true)|| (kohde.Tag.ToString() == "loukkuJumissa" && (masaLyo == true)))
545        {
546            int pMaxMaara = 200;
547
548
549            int pMaara = 50;
550            double x = kohde.X;
551            double y = kohde.Y;
552
553            hajotus2.AddEffect(x, y, pMaara);
554            kohde.Destroy();
555        }
556        else if (kohde.Tag.ToString() == "vasenloukku")
557        {
558            Elama.Value -= 2.5;
559        }
560       
561
562        else if (kohde.Tag.ToString() == "loukku")
563        {
564            Elama.Value -= 2.5;
565        }
566        if  (Elama.Value == 0)
567        {
568            //aloitapeli(kenttatilanne);
569            Begin();
570        }
571
572    }
573
574    void LoukkuOsuu(PhysicsObject loukku, PhysicsObject kohde, Timer ajastin)
575    {
576        if (kohde != pelaaja1 && kohde.Tag != "maankamara" && kohde.Tag != "")
577        {
578            loukku.Velocity = new Vector(0, 0);
579            ajastin.Stop();
580           
581           
582            loukku.MakeStatic();
583            loukku.Shape = Shape.Circle;
584            loukku.IgnoresCollisionResponse = false;
585            loukku.Tag = "loukkuJumissa";
586        }
587
588    }
589   
590
591    void osuKitaraan(PhysicsObject hahmo, PhysicsObject kohde)
592    {
593        if (kohde.Tag.ToString() == "Kitara")
594        {
595            Label label = new Label("Masa majava: Kitara...mitä minä tällä tekisin? Soittaisin musiikkia?");
596            label.TextColor = Color.Black;
597            label.Color = Color.White;
598            Label label2 = new Label("Masa majava: Hei! Nyt keksin! Painamalla 'Alas' minä voisin...");
599            label2.TextColor = Color.Black;
600            label2.Color = Color.White;
601            Add(label);
602            Timer.SingleShot(4, delegate()
603            {
604                label.Destroy();
605                Add(label2);
606            }
607            );
608            Timer.SingleShot(8, label2.Destroy);
609            kohde.Destroy();
610        }
611    }
612
613    void osuLaatikkoon(PhysicsObject hahmo, PhysicsObject kohde)
614    {
615        if (!masaLyo) return;
616        int pMaxMaara = 200;
617
618
619        int pMaara = 50;
620        double x = kohde.X;
621        double y = kohde.Y;
622
623        hajotus.AddEffect(x, y, pMaara);
624
625       
626        Label label = new Label("Masa majava: Siitäs sait, tyhmä loota.");
627        label.TextColor = Color.Black;
628        label.Color = Color.White;
629        Add(label);
630        Timer.SingleShot(3, delegate()
631        {
632            label.Destroy();
633        });
634
635       
636        kohde.Destroy();
637    }
638
639
640    void osuJetpakiin(PhysicsObject hahmo, PhysicsObject kohde)
641    {
642        if (kohde.Tag.ToString() == "jetpak")
643        {
644            Label label = new Label("Masa majava: Voi pojat! Sain Jetpakin! Nyt pystyn lentämään painamalla 'Ylös'.");
645            label.TextColor = Color.Black;
646            label.Color = Color.White;
647            lisaaESmittari();
648
649            Label label2 = new Label("Masa majava: Siihen kuitenkin tarvitaan Euroshopper-energiajuomaa polttoaineeksi...");
650            label2.TextColor = Color.Black;
651            label2.Color = Color.White;
652            Add(label);
653            Timer.SingleShot(3, delegate()
654            {
655                label.Destroy();
656                Add(label2);
657            }
658            );
659
660            Timer.SingleShot(6, label2.Destroy);
661            Label jetpak = new Label("ES");
662            jetpak.X = 300;
663            jetpak.Y = 380;
664            jetpak.TextColor = Color.LightGreen;
665            jetpak.BorderColor = Color.Blue;
666            jetpak.Color = Color.DarkBlue;
667            Add(jetpak);
668
669
670
671            kohde.Destroy();
672            AddCollisionHandler(pelaaja1, osuES);
673            Keyboard.Listen(Key.Up, ButtonState.Down, kaytajetpak, "Käyttää Jetpakiä", pelaaja1, lentonopeus);
674            Keyboard.Listen(Key.Up, ButtonState.Released, PelaajanAnimaatiot, "Lopettaa lennon");
675            ControllerOne.Listen(Button.DPadUp, ButtonState.Down, kaytajetpak, "Käyttää Jetpakiä", pelaaja1, lentonopeus);
676            ControllerOne.Listen(Button.DPadUp, ButtonState.Released, PelaajanAnimaatiot, "Lopettaa lennon");
677        }
678    }
679    void osuES(PhysicsObject hahmo, PhysicsObject kohde)
680    {
681        if (kohde.Tag.ToString() == "ES")
682        {
683
684            Label label = new Label("Masa majava: ES! Tekis mieli maistaa...mutta tarvitsen sitä polttoaineeksi.");
685            label.TextColor = Color.Black;
686            label.Color = Color.White;
687            Add(label);
688            Timer.SingleShot(4, delegate()
689            {
690                label.Destroy();
691            });
692            kohde.Destroy();
693            ESmittari.Value += 5;
694        }
695    }
696    void osuMaaliin(PhysicsObject hahmo, PhysicsObject kohde)
697    {
698        if (kohde.Tag.ToString() == "Maali")
699        {
700            Label label = new Label("Masa majava: Jepulis! Ovi seuraavaan kenttään!");
701            label.TextColor = Color.Black;
702            label.Color = Color.White;
703            Add(label);
704            Timer.SingleShot(4, delegate()
705                {
706                    label.Destroy();
707                    kenttatilanne += 1;
708                    aloitapeli(kenttatilanne);
709                });
710
711
712        }
713    }
714    void osuKylttiin(PhysicsObject hahmo, PhysicsObject kohde)
715    {
716        if (kohde.Tag.ToString() == "Kyltti")
717        {
718            Label label = new Label("Kyltti: Ei pääsyä ellei sinulla ole jetpackiä. Et tule selviämään ilman sitä.");
719            label.TextColor = Color.Black;
720            label.Color = Color.White;
721            Add(label);
722            Label label2 = new Label("Masa majava: Mistä minä jetpakin tähän hätään saisin?");
723            label2.TextColor = Color.Black;
724            label2.Color = Color.White;
725            Timer.SingleShot(3, delegate()
726            {
727                label.Destroy();
728                Add(label2);
729                Timer.SingleShot(3, delegate()
730                {
731                    label2.Destroy();
732                });
733            });
734        }
735    }
736}
737
Note: See TracBrowser for help on using the repository browser.