source: 2011/24/LauriK/Call of garden Modern carrotfare 2/Call of garden Modern carrotfare 2/Peli.cs @ 2105

Revision 2105, 21.8 KB checked in by hniemi, 10 years ago (diff)

Valmis!

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
12    const double nopeus = 200;
13    const double hyppyNopeus = 1000;
14    const int RUUDUN_KOKO = 40;
15
16    int kentanNro = 1;
17
18    ScoreList topLista = new ScoreList(10, false, 0);
19
20    PlatformCharacter porkkana;
21    PhysicsObject hautakivi;
22    PhysicsObject kuolluttomaatti;
23    PhysicsObject lipas;
24    PhysicsObject uusikranaatti;
25    PhysicsObject raha;
26
27    IntMeter panoslaskuri;
28    IntMeter pistelaskuri;
29    IntMeter kranaattiLaskuri;
30
31    List<GameObject> rajahdyksenTomaattiUhrit;
32    List<GameObject> rajahdyksenPorkkanaUhri;
33
34    Image[] pelaajanKuva = LoadImages("porkkana");
35    Image[] pelaajanKuvaPeilattu;
36    Image pelaajanKuvaKuolleena = LoadImage("rip");
37    Image[] vihollisenKuva = LoadImages("tomaatti");
38    Image[] vihollisenKuvaPeilattu;
39    Image vihollisenKuvaKuolleena = LoadImage("tomaattikuolleena");
40    Image lippaanKuva = LoadImage("Lipas2");
41    Image kranaatinKuva = LoadImage("ydinpommi");
42    Image uudenKranaatinKuva = LoadImage("Laatikko");
43    Image RahanKuva = LoadImage("Raha");
44    Image alustus1 = LoadImage("alustus1");
45    Image alustus2 = LoadImage("alustus2");
46    Image maalinKuva = LoadImage("Maali");
47    Image alkuvalikko = LoadImage("alkuvalikko");
48
49    ExplosionSystem rajahdys;
50    int pMaxMaara = 50;
51
52    public override void Begin()
53    {
54        if (DataStorage.Exists("pisteet.xlm"))
55        {
56            topLista = DataStorage.Load<ScoreList>(topLista, "pisteet.xlm");
57        }
58       
59        rajahdyksenTomaattiUhrit = new List<GameObject>();
60        rajahdyksenPorkkanaUhri = new List<GameObject>();
61       
62        pelaajanKuvaPeilattu = Image.Mirror(pelaajanKuva);
63        vihollisenKuvaPeilattu = Image.Mirror(vihollisenKuva);
64
65        Valikkoon();
66       
67        SeuraavaKentta(kentanNro);
68       
69        Gravity = new Vector(0, -1000);
70
71        rajahdys = new ExplosionSystem(LoadImage("rajahdys"), pMaxMaara);
72        rajahdys.MaxLifetime = 1.0;
73        rajahdys.MaxScale = 0.1;
74        Add(rajahdys);
75    }
76
77    void Valikkoon()
78    {
79        Camera.Reset();
80
81        ClearAll();
82
83        Level.Background.Image = alkuvalikko;
84        Level.Background.Width = Screen.Width;
85        Level.Background.Height = Screen.Height;
86
87        MediaPlayer.Play("alkuaani");
88
89        //MediaPlayer.Play("");
90
91        ClearControls();
92
93        Keyboard.Listen(Key.Enter, ButtonState.Pressed, SeuraavaKentta, "Aloita peli", 1);
94
95        ControllerOne.Listen(Button.Start, ButtonState.Pressed, SeuraavaKentta, "Aloita peli", 1);
96    }
97   
98    void SeuraavaKentta(int kentanNro)
99    {
100
101        if (kentanNro == 1) luoAlustus1();
102        else if (kentanNro == 2) luoAlustus2();
103        //else if (kenttaLaskuri.Value == 3) luoAlustus3();
104        else if (kentanNro > 2) LopetaPeli();
105
106
107
108    }
109
110    private void luoAlustus1()
111    {
112        Camera.Reset();
113
114        ClearAll();
115       
116        Level.Background.Image = alustus1;
117        Level.Background.Width = Screen.Width;
118        Level.Background.Height = Screen.Height;
119
120        MediaPlayer.Play("alustus1aani");
121
122        ClearControls();
123
124        Keyboard.Listen(Key.Enter, ButtonState.Pressed, TeeKentta1, "Aloita kenttä");
125
126        ControllerOne.Listen(Button.Start, ButtonState.Pressed, TeeKentta1,"Aloita kenttä");
127    }
128
129    void luoAlustus2()
130    {
131        Camera.Reset();
132       
133        ClearAll();
134       
135        Level.Background.Image = alustus2;
136        Level.Background.FitToLevel();
137
138        MediaPlayer.Play("alustus2aani");
139
140        ClearControls();
141
142        Keyboard.Listen(Key.Enter, ButtonState.Pressed, TeeKentta2, "Aloita kenttä");
143
144        ControllerOne.Listen(Button.Start, ButtonState.Pressed, TeeKentta2, "Aloita kenttä");
145    }
146
147    //void luoKentta3()
148    //{
149    //    TileMap kentta = TileMap.FromFile();
150    //    kentta['#'] = lisaaTaso;
151    //    kentta['K'] = lisaaTaso2;
152    //    kentta['N'] = lisaaPelaaja;
153    //    kentta['E'] = lisaaTomaatti;
154    //    kentta['L'] = LuoLipas;
155    //    kentta['A'] = LuoKranaatti;
156    //    kentta['T'] = lisaaTomaatti2;
157    //    kentta['M'] = LuoMaali;
158    //    kentta['R'] = LuoRaha;
159    //    kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO);
160    //    Level.CreateBorders();
161    //Level.Background.CreateGradient(Color.Green,Color.Black);
162    //}
163               
164    PhysicsObject lisaaTaso()
165    {
166        PhysicsObject taso = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO);
167        taso.Color = Color.Green;
168        return taso;
169    }
170
171    PhysicsObject lisaaTaso2()
172    {
173        PhysicsObject taso2 = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO);
174        taso2.Color = Color.Gray;
175        return taso2;
176    }
177
178    PhysicsObject lisaaTaso3()
179    {
180        PhysicsObject taso3 = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO);
181        taso3.Color = Color.Yellow;
182        return taso3;
183    }
184   
185    PlatformCharacter lisaaPelaaja()
186    {
187        porkkana = new PlatformCharacter(40, 40);
188        porkkana.Mass = 4.0;
189
190        porkkana.Weapon = new AssaultRifle(60, 30);
191        porkkana.Weapon.Ammo.Value = 10;
192        porkkana.Weapon.Y = -3;
193        porkkana.Weapon.X = 0;
194        porkkana.Weapon.ProjectileCollision = AmmusOsui;
195
196        AddCollisionHandler(porkkana, LipasKranaattiOsuma);
197
198        porkkana.IgnoresExplosions = true;
199
200        porkkana.RightWalkingAnimation = new Animation(pelaajanKuva);
201        porkkana.LeftWalkingAnimation = new Animation(pelaajanKuvaPeilattu);
202
203        rajahdyksenPorkkanaUhri.Add(porkkana);
204       
205        return porkkana;
206    }
207
208    PlatformCharacter lisaaTomaatti()
209    {
210        PlatformCharacter tomaatti = new PlatformCharacter(40, 40);
211        tomaatti.Mass = 4.0;
212
213        tomaatti.Tag = "Vihollinen";
214
215        FollowerBrain SeuraajanAivot = new FollowerBrain();
216        tomaatti.Brain = SeuraajanAivot;
217        SeuraajanAivot.Target = porkkana;
218        SeuraajanAivot.Speed = 100;
219        SeuraajanAivot.TargetFollowDistance = 500;
220        SeuraajanAivot.TargetCloseDistance = 50;
221        SeuraajanAivot.StopWhenTargetClose = false;
222        AddCollisionHandler(tomaatti, TomaattiOsui);
223
224        tomaatti.RightWalkingAnimation = new Animation(vihollisenKuva);
225        tomaatti.LeftWalkingAnimation = new Animation(vihollisenKuvaPeilattu);
226       
227        rajahdyksenTomaattiUhrit.Add(tomaatti);
228
229        Timer.SingleShot(2, delegate { Seuraa(SeuraajanAivot); });
230
231        return tomaatti;
232
233    }
234
235    void Seuraa(FollowerBrain aivot)
236    {
237        aivot.Target = porkkana;
238    }
239
240    PlatformCharacter lisaaTomaatti2()
241    {
242        PlatformCharacter tomaatti2 = new PlatformCharacter(40, 40);
243        tomaatti2.Mass = 4.0;
244
245        tomaatti2.Tag = "Vihollinen2";
246
247        tomaatti2.Weapon = new AssaultRifle(60, 30);
248        tomaatti2.Weapon.Ammo.Value = 10;
249        tomaatti2.Weapon.Y = 0;
250        tomaatti2.Weapon.X = 0;
251        tomaatti2.Weapon.ProjectileCollision = AmmusOsui;
252       
253        Timer ampumaAjastin = new Timer();
254        ampumaAjastin.Interval = 2.0;
255        ampumaAjastin.Trigger += vihollinenAmpuu;
256        ampumaAjastin.Tag = tomaatti2;
257        ampumaAjastin.Start();
258
259        tomaatti2.RightWalkingAnimation = new Animation(vihollisenKuva);
260        tomaatti2.LeftWalkingAnimation = new Animation(vihollisenKuvaPeilattu);
261
262        rajahdyksenTomaattiUhrit.Add(tomaatti2);
263
264        return tomaatti2;
265    }
266   
267    void lisaaNappaimet()
268    {
269        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
270        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
271
272        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", porkkana, -nopeus);
273        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", porkkana, nopeus);
274        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", porkkana, hyppyNopeus);
275
276        Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu rynnäkkökiväärillä");
277        Keyboard.Listen(Key.W, ButtonState.Down, TahtaaYlos, "Tähtää ylös rynnäkkökiväärillä");
278        Keyboard.Listen(Key.S, ButtonState.Down, TahtaaAlas, "Tähtää alas rynnäkkökiväärillä");
279        Keyboard.Listen(Key.Q, ButtonState.Pressed, HeitaKranaatti, "Heitä kranaatti");
280
281        ControllerOne.Listen(Button.Start, ButtonState.Pressed, Exit, "Poistu pelistä");
282        ControllerOne.Listen(Button.Back, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
283       
284        ControllerOne.ListenAnalog(AnalogControl.LeftStick, 0.01, liikutaTatilla, "Pelaaja liikkuu", porkkana);
285        ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", porkkana, hyppyNopeus);
286
287        ControllerOne.Listen(Button.RightTrigger, ButtonState.Down, AmmuAseella, "Ammu rynnäkkökiväärillä");
288        ControllerOne.ListenAnalog(AnalogControl.RightStick, 0.01, tahtaaTatilla, "Tähtää rynnäkkökiväärillä");
289        ControllerOne.Listen(Button.LeftTrigger, ButtonState.Pressed, HeitaKranaatti, "Heitä kranaatti");   
290    }
291
292    void liikuta(PlatformCharacter hahmo, double nopeus)
293    {
294        hahmo.Walk(nopeus);
295    }
296
297    void hyppaa(PlatformCharacter hahmo, double nopeus)
298    {
299        hahmo.Jump(nopeus);
300    }
301
302    void liikutaTatilla(AnalogState tatintila, PlatformCharacter hahmo)
303    {
304        Vector tatinAsento = tatintila.StateVector;
305        hahmo.Walk(tatinAsento.X*nopeus);
306
307    }
308
309    void AmmuAseella()
310    {
311        PhysicsObject ammus = porkkana.Weapon.Shoot();
312
313
314        if (ammus != null)
315        {
316            ammus.Size *= 5;
317            ammus.MaximumLifetime = TimeSpan.FromSeconds(1.5);
318        }
319    }
320   
321    void TahtaaYlos()
322    {
323        if (porkkana.FacingDirection == Direction.Right)
324        {
325            porkkana.Weapon.Angle += Angle.FromDegrees(5);
326        }
327        if (porkkana.FacingDirection == Direction.Left)
328        {
329            porkkana.Weapon.Angle += Angle.FromDegrees(-5);
330        }
331
332
333    }
334
335    void TahtaaAlas()
336    {
337        if (porkkana.FacingDirection == Direction.Right)
338        {
339            porkkana.Weapon.Angle += Angle.FromDegrees(-5);
340        }
341        if (porkkana.FacingDirection == Direction.Left)
342        {
343            porkkana.Weapon.Angle += Angle.FromDegrees(5);
344        }
345    }
346   
347    void tahtaaTatilla(AnalogState toisentatintila)
348    {
349            Vector toisentatinAsento = toisentatintila.StateVector;
350            porkkana.Weapon.Angle = toisentatinAsento.Angle;
351    }   
352   
353    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
354    {
355
356        if (kohde.Tag.ToString() == "Vihollinen" || kohde.Tag.ToString() == "Vihollinen2")
357        {
358            ammus.Destroy();
359            kohde.Brain = null;
360            TomaattiKuoli(kohde);
361            kohde.IgnoresCollisionResponse = true;
362            rajahdys.AddEffect(kohde.Position, 50);
363
364        }
365       
366        if (kohde == porkkana)
367        {
368            porkkana.Stop();
369
370            MediaPlayer.Play("pling");
371
372            porkkana.Destroy();
373
374            LuoHautakivi();
375
376            LopetaPeli();
377     
378        }
379
380        if (kohde.Tag.ToString() == "Lipas")
381        {
382       
383        }
384    }
385           
386    void LopetaPeli()
387    {
388        HighScoreWindow topIkkuna = new HighScoreWindow("Call of garden: Modern carrotfare",
389            "Parhaat pisteet",
390            "Onneksi olkoon, pääsit listalle pisteillä %p! Syötä nimesi:",
391            topLista, pistelaskuri.Value);
392        topIkkuna.Closed += TallennaPisteet;
393        Add(topIkkuna);       
394    }
395   
396    void LuoHautakivi()
397    {
398        hautakivi = new PhysicsObject(40, 40);
399        hautakivi.Mass = 100000000000.0;
400
401        hautakivi.IgnoresExplosions = true;
402
403        hautakivi.Image = pelaajanKuvaKuolleena;
404
405        hautakivi.Position = porkkana.Position;
406        Add(hautakivi);
407
408    }
409
410    void TomaattiKuoli(PhysicsObject tomaatti)
411    {
412        tomaatti.Destroy();
413
414        MediaPlayer.Play("ketshup");
415
416        pistelaskuri.Value += 100; 
417
418        kuolluttomaatti = new PhysicsObject(50, 50);
419        kuolluttomaatti.Mass = 4.0;
420
421        kuolluttomaatti.IgnoresCollisionResponse = true;
422
423        kuolluttomaatti.IgnoresGravity = true;
424
425        kuolluttomaatti.IgnoresExplosions = true;
426
427        kuolluttomaatti.Image = vihollisenKuvaKuolleena;
428
429        kuolluttomaatti.Position = tomaatti.Position;
430        Add(kuolluttomaatti);
431
432        LuoLipas(kuolluttomaatti.X - 30, kuolluttomaatti.Y);
433        LuoKranaatti(kuolluttomaatti.X + 30, kuolluttomaatti.Y);
434    }
435
436    void TomaattiOsui(PhysicsObject tomaatti, PhysicsObject kohde)
437    {
438        if (kohde == porkkana)
439        {         
440            tomaatti.Stop();
441            tomaatti.Brain.Active = false;
442
443            //porkkana.IgnoresCollisionResponse = true;
444
445            porkkana.Stop();
446
447            MediaPlayer.Play("pling");
448
449            porkkana.Destroy();
450
451            LuoHautakivi();
452
453            LopetaPeli();
454     
455        }
456
457    }
458
459    void LuoPanosLaskuri()
460    {
461        panoslaskuri = new IntMeter(0);
462
463        Label panosnaytto = new Label();
464        panosnaytto.X = Screen.Right - 100;
465        panosnaytto.Y = Screen.Top - 100;
466        panosnaytto.TextColor = Color.Red;
467       
468        panosnaytto.BindTo(porkkana.Weapon.Ammo);
469        Add(panosnaytto);
470
471        Label panosteksti = new Label("Panoksia jäljellä: ");
472        panosteksti.X = Screen.Right - 200;
473        panosteksti.Y = Screen.Top - 100;
474        panosteksti.TextColor = Color.Red;
475
476        Add(panosteksti); 
477    }
478   
479    void LuoPisteLaskuri()
480    {
481        pistelaskuri = new IntMeter(0);
482       
483        Label pistenaytto = new Label();
484        pistenaytto.X = Screen.Right - 100;
485        pistenaytto.Y = Screen.Top - 150;
486        pistenaytto.TextColor = Color.Red;
487
488        pistenaytto.BindTo(pistelaskuri);
489        Add(pistenaytto);
490
491        Label pisteteksti = new Label("Pisteitä: ");
492        pisteteksti.X = Screen.Right - 200;
493        pisteteksti.Y = Screen.Top - 150;
494        pisteteksti.TextColor = Color.Red;
495
496        Add(pisteteksti);
497    }
498
499    PhysicsObject LuoLipas()
500    {
501        lipas = new PhysicsObject(20, 20);
502        lipas.Mass = 2.0;
503
504        lipas.Image = lippaanKuva;
505
506        lipas.IgnoresExplosions = true;
507
508        lipas.Tag = "Lipas";
509
510        Add(lipas);
511        return lipas;
512    }
513
514    void LuoLipas(double x, double y)
515    {
516        LuoLipas().Position = new Vector(x,y);
517    }
518
519    void LipasKranaattiOsuma(PhysicsObject porkkana, PhysicsObject kohde)
520    {
521        if (kohde.Tag.ToString() == "Lipas")
522        {
523            ((PlatformCharacter)porkkana).Weapon.Ammo.Value +=5;
524            kohde.Destroy();
525        }
526        if (kohde.Tag.ToString() == "Kranaatti")
527        {
528            kranaattiLaskuri.Value++;
529            kohde.Destroy();
530        }
531       
532    }
533
534    void HeitaKranaatti()
535    {
536       
537        if (kranaattiLaskuri.Value > 0)
538        {
539            Grenade kranaatti = new Grenade(10.0);
540            kranaatti.Image = kranaatinKuva;
541            kranaatti.Mass = 1.0;
542            kranaatti.ExplosionRadius = 100.0;
543           
544            kranaattiLaskuri.Value -= 1;
545
546            kranaatti.X = porkkana.X;
547            kranaatti.Y = porkkana.Y;
548            Add(kranaatti);
549            Vector kranaatinlento = Vector.FromLengthAndAngle(700.0, porkkana.Weapon.Angle);
550            kranaatti.Hit(kranaatinlento);
551            kranaatti.Destroyed += new Action(delegate { kranaatti_Destroyed(kranaatti); });
552        }
553    }
554
555    void kranaatti_Destroyed(Grenade s)
556    {
557        foreach (PhysicsObject item in rajahdyksenTomaattiUhrit)
558        {
559            if (Vector.Distance(s.Position, item.Position) < s.ExplosionRadius)
560            {
561                TomaattiKuoli(item);
562                rajahdys.AddEffect(item.Position, 50);
563            }
564        }
565       
566        foreach (GameObject item in rajahdyksenPorkkanaUhri)
567        {
568            if (Vector.Distance(s.Position, item.Position) < s.ExplosionRadius)
569            {
570                porkkana.Stop();
571
572                MediaPlayer.Play("pling");
573
574                porkkana.Destroy();
575
576                LuoHautakivi();
577
578                LopetaPeli();
579     
580            }
581        }
582   
583   
584    }
585
586    void vihollinenAmpuu(Timer ampumaAjastin)
587    {
588        PlatformCharacter tomaatti2 = ampumaAjastin.Tag as PlatformCharacter;
589       
590        Vector ampumaSuunta = (porkkana.Position - tomaatti2.Position).Normalize();
591        tomaatti2.Weapon.Angle = ampumaSuunta.Angle;
592
593        PhysicsObject vihu = ampumaAjastin.Tag as PhysicsObject;
594       
595        PhysicsObject ammus = tomaatti2.Weapon.Shoot();
596       
597        if (ammus != null)
598        {
599            ammus.Size *= 5;
600            ammus.MaximumLifetime = TimeSpan.FromSeconds(1.5);
601            ammus.IgnoresGravity = true;
602        }
603    }
604
605    void LuoKranaattiLaskuri ()
606    {
607        kranaattiLaskuri= new IntMeter(3);
608        kranaattiLaskuri.MinValue = 0;
609        Label kranaattiNaytto = new Label();
610        kranaattiNaytto.X = Screen.Right - 100;
611        kranaattiNaytto.Y = Screen.Top - 50;
612        kranaattiNaytto.TextColor = Color.Red;
613
614               
615        kranaattiNaytto.BindTo(kranaattiLaskuri);
616        Add( kranaattiNaytto);
617
618        Label kranaattiteksti = new Label("Kranaatteja jäljellä: ");
619        kranaattiteksti.X = Screen.Right - 200;
620        kranaattiteksti.Y = Screen.Top - 50;
621        kranaattiteksti.TextColor = Color.Red;
622
623        Add(kranaattiteksti); 
624    }
625
626    PhysicsObject LuoKranaatti()
627    {
628        uusikranaatti = new PhysicsObject(40, 20);
629        uusikranaatti.Mass = 2.0;
630
631        uusikranaatti.Image = uudenKranaatinKuva;
632
633        uusikranaatti.IgnoresExplosions = true;
634
635        uusikranaatti.Tag = "Kranaatti";
636
637        Add(uusikranaatti);
638        return uusikranaatti;
639    }
640
641    void LuoKranaatti(double x, double y)
642    {
643        LuoKranaatti().Position = new Vector(x, y);
644    }
645
646    PhysicsObject LuoMaali()
647    {
648        PhysicsObject maali = new PhysicsObject(40, 40);
649        maali.Image = maalinKuva;
650        maali.Mass = 4.0;
651        AddCollisionHandler(maali, MaaliinOsuma);
652        return maali;
653    }
654
655    void MaaliinOsuma(PhysicsObject maali, PhysicsObject kohde)
656    {
657        if (kohde == porkkana)
658        { 
659            pistelaskuri.Value += 200;
660            kentanNro += 1;
661            SeuraavaKentta(kentanNro);
662        }
663    }
664
665    void TallennaPisteet(Window sender)
666    {
667        DataStorage.Save<ScoreList>(topLista, "pisteet.xlm");
668
669        MediaPlayer.Stop();
670       
671        Label lopetus = new Label();
672        lopetus.SizeMode = TextSizeMode.Wrapped;
673        lopetus.Width = Screen.Width -100;
674        lopetus.Height = Screen.Height;
675        lopetus.TextColor = Color.Orange;
676        lopetus.Font = Font.DefaultLargeBold;
677        Add(lopetus);
678        lopetus.Text = "                                       Peli päättyi.\n" +
679        "Paina Escape/Start mennäksesi valikkoon.";
680
681        ClearControls();
682
683        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Valikkoon, "Poistu pelistä");
684
685        ControllerOne.Listen(Button.Start, ButtonState.Down, Valikkoon, "Poistu valikkoon");
686
687    }
688
689    PhysicsObject LuoRaha()
690    {
691        raha = new PhysicsObject(40, 40);
692        raha.Mass = 4.0;
693        raha.Image = RahanKuva;
694        AddCollisionHandler(raha, RahaanTormays);
695        return raha;
696    }
697
698    void RahaanTormays(PhysicsObject raha, PhysicsObject kohde)
699    {
700        if(kohde == porkkana)
701        {
702            pistelaskuri.Value += 100;
703            raha.Destroy();
704        }
705    }
706
707    void TeeKentta1()
708    {       
709        MediaPlayer.Stop();
710       
711        TileMap kentta = TileMap.FromFile("kentta1.txt");
712        kentta['#'] = lisaaTaso;
713        kentta['K'] = lisaaTaso2;
714        kentta['G'] = lisaaTaso3;
715        kentta['N'] = lisaaPelaaja;
716        kentta['E'] = lisaaTomaatti;
717        kentta['L'] = LuoLipas;
718        kentta['A'] = LuoKranaatti;
719        kentta['T'] = lisaaTomaatti2;
720        kentta['M'] = LuoMaali;
721        kentta['R'] = LuoRaha;
722        kentta['G'] = lisaaTaso3;
723        kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO);
724        Level.CreateBorders();
725        Level.Background.CreateGradient(Color.Blue, Color.Black);
726
727        Gravity = new Vector(0, -1000);
728       
729        LuoPanosLaskuri();
730        LuoPisteLaskuri();
731        LuoKranaattiLaskuri();
732
733        Camera.Follow(porkkana);
734
735        Camera.ZoomFactor = 0.5;
736        Camera.StayInLevel = true;
737
738        lisaaNappaimet();
739    }
740
741    void TeeKentta2()
742    {       
743        MediaPlayer.Stop();       
744       
745        TileMap kentta = TileMap.FromFile("kentta2.txt");
746        kentta['#'] = lisaaTaso;
747        kentta['K'] = lisaaTaso2;
748        kentta['G'] = lisaaTaso3;
749        kentta['N'] = lisaaPelaaja;
750        kentta['E'] = lisaaTomaatti;
751        kentta['L'] = LuoLipas;
752        kentta['A'] = LuoKranaatti;
753        kentta['T'] = lisaaTomaatti2;
754        kentta['M'] = LuoMaali;
755        kentta['R'] = LuoRaha;
756        kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO);
757        Level.CreateBorders();
758        Level.Background.CreateGradient(Color.Black, Color.Blue);
759
760        Gravity = new Vector(0, -1000);
761       
762        LuoPanosLaskuri();
763        LuoPisteLaskuri();
764        LuoKranaattiLaskuri();
765
766        Camera.Follow(porkkana);
767
768        Camera.ZoomFactor = 2.0;
769        Camera.StayInLevel = true;
770       
771        lisaaNappaimet();
772    }
773}             
Note: See TracBrowser for help on using the repository browser.