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

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