source: 2012/24/LauriK/Call of Garden Tomato oppression/Call of Garden Tomato oppression/Call of Garden Tomato oppression/Call_of_Garden_Tomato_oppression.cs @ 3061

Revision 3061, 23.2 KB checked in by sijoseha, 9 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Call_of_Garden_Tomato_oppression : PhysicsGame
10{   
11    const double nopeus = 200;
12    const double hyppyNopeus = 500;
13    const int RUUDUN_KOKO = 40;
14    int kenttaNro = 0;
15   
16    IntMeter pisteLaskuri;
17   
18    public bool pelaajallaOnAse = true;
19    public bool IntelKeratty = false;
20   
21    string cheat1 = "MaxAmmo";
22   
23    DoubleMeter voimaMittari;
24    IntMeter ammusLaskuri;
25    ScoreList topLista = new ScoreList(10, false, 0);
26
27    PlatformCharacter porkkana;
28
29    Image ValikkoTaustaKuva = LoadImage("city");
30    Image kansio = LoadImage("kansio");
31    Image lippaanKuva = LoadImage("Lipas2");
32   
33    Image paikallaanOikealle = LoadImage("Porkkana");
34    Image paikallaanVasemmalle;
35
36    Image[] kavelyOikealle = LoadImages("Porkkana", "Porkkana 1", "Porkkana 2", "Porkkana 3");
37    Image[] kavelyVasemmalle;
38 
39    Image[] potkuOikealle = LoadImages("Porkkana", "Porkkana 2.1", "Porkkana 2.2", "Porkkana 2.3");
40    Image[] potkuVasemmalle;
41
42    Image[] tomaatinKuva = LoadImages("tomaatti");
43    Image[] tomaatinKuvaPeilattu;
44
45    public override void Begin()
46    {
47        if (DataStorage.Exists("pisteet.xml"))
48        topLista = DataStorage.Load<ScoreList>(topLista, "pisteet.xml");
49
50        ClearAll();
51
52        MediaPlayer.Play("teema");
53
54        kenttaNro = 0;       
55        seuraavaKentta(kenttaNro); 
56    }
57
58    void valikko()
59    {
60        kenttaNro = 0;
61        ClearAll();
62       
63        MultiSelectWindow valikko = new MultiSelectWindow("Call of Garden: Tomato Oppression",
64        "Start Game", "Highscores", "Controls", "Exit");
65        valikko.ItemSelected += PainettiinValikonNappia;
66        Add(valikko);
67        valikko.DefaultCancel = 3;
68        valikko.Color = Color.Transparent;
69        valikko.SetButtonColor(Color.Silver);
70        valikko.SelectionColor = Color.LimeGreen;
71
72        MessageDisplay.BackgroundColor = Color.Transparent;
73        MessageDisplay.TextColor = Color.Ruby;
74
75        MediaPlayer.Resume();
76        MediaPlayer.IsRepeating = true;
77        MediaPlayer.Volume = 1.0;
78
79        Level.Background.Image = ValikkoTaustaKuva;
80        Level.Background.Width = Screen.Width;
81        Level.Background.Height = Screen.Height;
82        Level.Background.Position = Screen.Center;
83
84    }
85
86    void AloitaPeli()
87    {
88        MediaPlayer.Pause();
89        MediaPlayer.IsRepeating = false;
90       
91        Gravity = new Vector(0, -1000);
92
93        Level.Background.Image = null;
94
95        paikallaanVasemmalle = Image.Mirror(paikallaanOikealle);
96        kavelyVasemmalle = Image.Mirror(kavelyOikealle);
97
98        potkuVasemmalle = Image.Mirror(potkuOikealle);
99
100        tomaatinKuvaPeilattu = Image.Mirror(tomaatinKuva);
101
102        luoKentta("kentta_testi");
103
104        Camera.Follow(porkkana);
105        Camera.ZoomFactor = 1;
106        Camera.StayInLevel = true;
107    }
108   
109    void seuraavaKentta(int kenttaNro)
110    {
111        if (kenttaNro == 0) valikko();
112        else if (kenttaNro == 1) AloitaPeli();
113        //else if (kenttaNro == 2) LuoKentta("kentta2.txt");
114        //else if (kenttaNro == 3) LuoKentta("kentta3.txt");
115        else if (kenttaNro == 2) LopetaPeli();
116    }
117   
118    void luoKentta(string levelFile)
119    {
120        TileMap ruudut = TileMap.FromLevelAsset(levelFile);
121       
122        ruudut.SetTileMethod('P', lisaaPelaaja);
123        ruudut.SetTileMethod('T', lisaaTomaatti);
124        ruudut.SetTileMethod('-', lisaaTaso);
125        ruudut.SetTileMethod('_', lisaaTaso2);
126        ruudut.SetTileMethod('I', lisaaIntel);
127        ruudut.SetTileMethod('L', luoLipas);
128        ruudut.SetTileMethod('M', luoMaali);
129        ruudut.Execute(20, 20);
130
131        //Level.Background.Destroy();
132        Level.CreateBorders();
133        luoPisteLaskuri();
134        luoVoimaMittari();
135        lisaaNappaimet();
136       
137        Level.Background.Image = ValikkoTaustaKuva;
138        //Level.Background.Width = Screen.Width;
139        //Level.Background.Height = Screen.Height;
140        //Level.Background.Position = Screen.Center;
141        Level.Background.MovesWithCamera = false;
142        //GameObject taustaKuva = new GameObject(Screen.Width, Screen.Height);
143        //taustaKuva.Image = ValikkoTaustaKuva;
144        //taustaKuva.TextureFillsShape = true;
145        ////taustaKuva.Image.Height = Screen.Height;
146        //Add(taustaKuva, -3);
147        //Layers[-3].RelativeTransition = new Vector(0.5, 0.5);
148
149        Gravity = new Vector(0, -1000);
150    }
151
152    void lisaaTaso(Vector paikka, double leveys, double korkeus)
153    {
154        PhysicsObject taso = new PhysicsObject(leveys, korkeus);
155        taso.Mass = 4000000000000000000;
156        taso.IgnoresGravity = true;
157        taso.IgnoresCollisionResponse = false;
158        taso.Position = paikka;
159        taso.Color = Color.Gray;
160        Add(taso);
161    }
162
163    void lisaaPelaaja(Vector paikka, double leveys, double korkeus)
164    {
165        porkkana = new PlatformCharacter(leveys, korkeus);
166        porkkana.Mass = 4.0;
167        porkkana.Position = paikka;
168
169        if (pelaajallaOnAse == true)
170        {
171            porkkana.Weapon = new AssaultRifle(10, 5);
172            porkkana.Weapon.Ammo.Value = 10;
173            //porkkana.Weapon.Position = paikka;
174            //porkkana.Weapon.X = porkkana.X + 5;
175            LuoAmmusLaskin();
176        }
177
178        porkkana.IgnoresExplosions = true;
179        AddCollisionHandler<PhysicsObject, PhysicsObject>(porkkana, "lipas", delegate
180        {
181            porkkana.Weapon.Ammo.Value += 10;
182            MessageDisplay.Add("You picked up 10 ammo!");
183
184        });
185       
186        AddCollisionHandler (porkkana, "lipas", CollisionHandler.DestroyTarget);
187       
188        porkkana.Tag = "Porkkana";
189
190        porkkana.RightIdleAnimation = new Animation(paikallaanOikealle);
191        porkkana.LeftIdleAnimation = new Animation(paikallaanVasemmalle);
192
193        porkkana.RightWalkingAnimation = new Animation(kavelyOikealle);
194        porkkana.LeftWalkingAnimation = new Animation(kavelyVasemmalle);
195
196        //porkkana.Animation.FPS = 100;
197       
198        Add(porkkana);
199    }
200
201    void lisaaTomaatti(Vector paikka, double leveys, double korkeus)
202    {
203        PlatformCharacter tomaatti = new PlatformCharacter(leveys, korkeus);
204        tomaatti.Position = paikka;
205   
206        tomaatti.Mass = 0.5;
207       
208        tomaatti.Weapon = new AssaultRifle(10, 5);
209        tomaatti.Weapon.Ammo.Value = 100000;
210        //tomaatti.Weapon.Position = paikka;
211        //tomaatti.Weapon.Y = tomaatti.Y - 10;
212
213        tomaatti.RightWalkingAnimation = new Animation(tomaatinKuva);
214        tomaatti.LeftWalkingAnimation = new Animation(tomaatinKuvaPeilattu);
215
216        FollowerBrain seuraajanAivot = new FollowerBrain();
217        tomaatti.Brain = seuraajanAivot;
218        seuraajanAivot.Target = porkkana;
219        seuraajanAivot.Speed = 150;
220        seuraajanAivot.TargetFollowDistance = 300;
221        seuraajanAivot.FollowAlways = false;
222        seuraajanAivot.Active = false;
223
224        RandomMoverBrain randomAivot = new RandomMoverBrain();
225        tomaatti.Brain = randomAivot;
226        randomAivot.ChangeMovementSeconds = RandomGen.NextDouble(1, 20);
227
228        randomAivot.Active = true;
229             
230        PhysicsObject nakokentta = new PhysicsObject(100, 50);
231        nakokentta.Image = LoadImage("Varokentta");
232        nakokentta.Position = tomaatti.Position;
233        Add(nakokentta);
234        nakokentta.IgnoresCollisionResponse = true;
235
236        Timer nakokentanLiikuttamisAjastin = new Timer();
237        nakokentanLiikuttamisAjastin.Interval = 0.01;
238        nakokentanLiikuttamisAjastin.Start();
239        nakokentanLiikuttamisAjastin.Timeout += delegate
240        {
241            nakokentta.Position = tomaatti.Position;
242        };
243
244        DoubleMeter tomaattiMittari = new DoubleMeter(10);
245        tomaattiMittari.MaxValue = 10;
246        tomaattiMittari.MinValue = 0;
247       
248        ProgressBar tomaattiPalkki = new ProgressBar(15, 3);
249       
250        Timer mittarinLiikuttamisAjastin = new Timer();
251        mittarinLiikuttamisAjastin.Interval = 0.01;
252        mittarinLiikuttamisAjastin.Start();
253        mittarinLiikuttamisAjastin.Timeout += delegate
254        {
255            tomaattiPalkki.Position = tomaatti.Position;
256            tomaattiPalkki.Y = tomaatti.Y + 20;
257        };
258 
259        tomaattiPalkki.BindTo(tomaattiMittari);
260        Add(tomaattiPalkki,0);
261
262        tomaattiMittari.LowerLimit += delegate(double mittarinArvo)
263        {
264            PhysicsObject kuollutTomaatti = new PhysicsObject(1,1);
265            kuollutTomaatti.Size = tomaatti.Size;
266            kuollutTomaatti.Position = tomaatti.Position;
267            kuollutTomaatti.Y = tomaatti.Y + 10;
268            kuollutTomaatti.IgnoresExplosions = true;
269            kuollutTomaatti.IgnoresCollisionResponse = true;
270            kuollutTomaatti.IgnoresGravity = true;
271            tomaatti.X = 100000000;
272            tomaatti.Y = 100000000;
273            kuollutTomaatti.MaximumLifetime = TimeSpan.FromSeconds(5.0);
274            kuollutTomaatti.Image = LoadImage("Tomaattikuolleena");
275            pisteLaskuri.Value += 100;
276            MessageDisplay.Add("You killed a tomato!");
277            tomaattiPalkki.Destroy();
278            tomaatti.Destroy();
279            nakokentta.Destroy();
280            Add(kuollutTomaatti);
281        }
282        ;
283
284        tomaattiPalkki.X = tomaatti.X;
285        tomaattiPalkki.Y = tomaatti.Y + 20;
286        tomaattiPalkki.Image = LoadImage("tomaattipalkki_tyhja");
287        tomaattiPalkki.BarImage = LoadImage("tomaattipalkki_taysi");
288
289        Timer tomaattiHuomasi = new Timer();
290        tomaattiHuomasi.Interval = 0.1;
291        tomaattiHuomasi.Timeout += delegate
292        {
293            if (nakokentta.IsInside(porkkana.Position))
294            {
295                if (tomaatti.FacingDirection != porkkana.FacingDirection)
296                {
297                    seuraajanAivot.Active = true;
298                    randomAivot.Active = false;
299                    MediaPlayer.Play("Warning");
300                    MediaPlayer.IsRepeating = true;
301                    VihuAmpuu(tomaatti);
302                }
303            }
304
305            //else
306            //{
307            //    Timer.SingleShot(5, delegate
308            //    {
309            //        seuraajanAivot.Active = false;
310            //        randomAivot.Active = true;
311            //        MediaPlayer.Pause();
312            //    });
313            //}   
314        };
315        tomaattiHuomasi.Start();
316
317        AddCollisionHandler(tomaatti, "ammus", delegate (PhysicsObject p, PhysicsObject o)
318        {
319            tomaatinElamat(tomaatti, nakokentta, 5, tomaattiMittari);
320            pisteLaskuri.Value += 1;
321        }
322        );
323
324        AddCollisionHandler(tomaatti, "ammus", CollisionHandler.DestroyTarget);
325       
326        Keyboard.Listen(Key.Q, ButtonState.Pressed, delegate
327        {
328            if(tomaatti.FacingDirection == porkkana.FacingDirection && tomaatti.X-porkkana.X < 50 && tomaatti.X-porkkana.X > -50)
329            {
330                tomaatinElamat(tomaatti, nakokentta, 100, tomaattiMittari);
331                porkkana.Animation = new Animation(potkuOikealle);
332                porkkana.Animation.Start(5);
333                MessageDisplay.Add("You assasinated a tomato!");
334                pisteLaskuri.Value += 1000;
335            }
336           
337            else if (tomaatti.FacingDirection != porkkana.FacingDirection && tomaatti.X - porkkana.X < 50 && tomaatti.X - porkkana.X > -50)
338            {
339                tomaatinElamat(tomaatti, nakokentta, 10, tomaattiMittari);
340                pisteLaskuri.Value += 10;
341            }
342
343        }, "Lyö tomaattia");
344
345        Add(tomaatti);
346    }
347   
348    protected override void Update(Time time)
349    {
350
351        base.Update(time);
352
353    } 
354   
355    void tomaatinElamat(PlatformCharacter tomaatti, PhysicsObject nakokentta, double damage, DoubleMeter tomaattiMittari)
356    {
357        tomaattiMittari.Value -= damage;
358    }
359   
360
361    void lisaaTaso2(Vector paikka, double leveys, double korkeus)
362    {
363        PhysicsObject taso2 = PhysicsObject.CreateStaticObject(leveys, korkeus);
364        taso2.Color = Color.ForestGreen;
365        taso2.Position = paikka;
366        Add(taso2);
367    }
368
369    void lisaaIntel(Vector paikka, double leveys, double korkeus)
370    {
371        PhysicsObject Intel = new PhysicsObject(leveys, korkeus);
372        Intel.Position = paikka;
373        Intel.Image = kansio;
374        Intel.Mass = 4.0;
375
376        AddCollisionHandler<PhysicsObject, PlatformCharacter>(Intel, "Porkkana", PoimiIntel);
377
378        Add(Intel);
379    }
380
381    void PoimiIntel(PhysicsObject kansio, PlatformCharacter pelaaja)
382    {
383        kansio.Destroy();
384        MessageDisplay.Add("You picked up the files!\n Now return to the base.");
385        IntelKeratty = true;
386    }
387   
388   
389    void lisaaNappaimet()
390    {
391        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
392        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
393
394        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", porkkana, -nopeus);
395        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu vasemmalle", porkkana, nopeus);
396        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", porkkana, hyppyNopeus);
397       
398        Keyboard.Listen(Key.Space, ButtonState.Down, ammuAseella, "Ammu aseella");
399       
400        Keyboard.Listen(Key.W, ButtonState.Down, TahtaaYlos, "Tähtää ylös");
401        Keyboard.Listen(Key.S, ButtonState.Down, TahtaaAlas, "Tähtää alas");
402       
403        Keyboard.Listen(Key.A, ButtonState.Pressed, cheatIkkuna, "Avaa cheatikkuna");
404        Keyboard.Listen(Key.M, ButtonState.Pressed, musiikkiIkkuna, "Avaa musiikki-ikkuna");
405
406        ControllerOne.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Poistu pelistä");
407
408        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", porkkana, -nopeus);
409        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", porkkana, nopeus);
410        ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", porkkana, hyppyNopeus);
411
412        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
413    }
414
415    void liikuta(PlatformCharacter hahmo, double nopeus)
416    {
417        hahmo.Walk(nopeus);
418    }
419
420    void hyppaa(PlatformCharacter hahmo, double nopeus)
421    {
422        hahmo.Jump(nopeus);
423    }
424
425    void ammuAseella()
426    {
427            PhysicsObject ammus = porkkana.Weapon.Shoot();
428
429            if (ammus != null)
430            {
431                ammus.Tag = "ammus";
432                ammus.Size *= 0.1;
433                ammus.Restitution = 0.1;
434                ammus.MaximumLifetime = TimeSpan.FromSeconds(5);
435            }
436    }
437
438    void TahtaaYlos()
439    {
440        if (porkkana.FacingDirection == Direction.Right)
441        {
442            porkkana.Weapon.Angle += Angle.FromDegrees(5);
443        }
444        if (porkkana.FacingDirection == Direction.Left)
445        {
446            porkkana.Weapon.Angle += Angle.FromDegrees(-5);
447        }
448    }
449
450    void TahtaaAlas()
451    {
452        if (porkkana.FacingDirection == Direction.Right)
453        {
454            porkkana.Weapon.Angle += Angle.FromDegrees(-5);
455        }
456        if (porkkana.FacingDirection == Direction.Left)
457        {
458            porkkana.Weapon.Angle += Angle.FromDegrees(5);
459        }
460    }
461
462    void cheatIkkuna()
463    {     
464        InputWindow cheatIkkuna = new InputWindow("CheatikkunaAnna cheatkoodi");
465        cheatIkkuna.TextEntered += ProcessInput;
466        Add(cheatIkkuna);
467    }
468
469    void musiikkiIkkuna()
470    {
471        MultiSelectWindow cheatvalikko = new MultiSelectWindow("Choose song", "Pullava-song",
472        "Derp-song", "Super Mario- song", "Simpsons theme song", "Ghostbusters theme song", "Spy theme song", "Pause current song");
473        cheatvalikko.ItemSelected += PainettiinMusiikkiValikonNappia;
474        Add(cheatvalikko);
475    }
476   
477    void ProcessInput(InputWindow cheatikkuna)
478    {
479        string vastaus = cheatikkuna.InputBox.Text;
480
481        if (vastaus == cheat1)
482        {
483            porkkana.Weapon.Ammo.Value = 100;
484        }
485    }
486
487    void PainettiinValikonNappia(int valinta)
488    {
489        switch (valinta)
490        {
491            case 0:
492
493                kenttaNro++;
494                seuraavaKentta(kenttaNro);
495               
496                break;
497           
498            case 1:
499
500                Keyboard.Listen(Key.Enter, ButtonState.Pressed, valikko, "Palaa päävalikkoon");
501
502                HighScoreWindow topIkkuna = new HighScoreWindow(
503                "Highscores",
504                topLista );
505                topIkkuna.Closed += TallennaPisteet;
506                 
507                Add( topIkkuna );
508
509                break;
510           
511            case 2:
512
513                MediaPlayer.Pause();
514               
515                lisaaNappaimet();
516                ShowControlHelp();
517                ClearControls();
518                valikko();
519               
520                break;
521           
522            case 3:
523               
524                Exit();
525               
526                break;
527        } 
528    }
529
530    void PainettiinMusiikkiValikonNappia(int valinta)
531    {
532        switch (valinta)
533        {
534            case 0:
535                MediaPlayer.Play("Pullava");
536                MessageDisplay.Add("Pullava-song activated!");
537                break;
538            case 1:
539                MediaPlayer.Play("derp");
540                MessageDisplay.Add("Derp-song activated!");
541                break;
542            case 2:
543                MediaPlayer.Play("super mario");
544                MessageDisplay.Add("Super Mario-song activated!");
545                break;               
546            case 3:
547                MediaPlayer.Play("simpsons");
548                MessageDisplay.Add("Simpsons theme song activated!");
549                break;
550            case 4:
551                MediaPlayer.Play("ghostbusters");
552                MessageDisplay.Add("Ghostbusters theme song activated!");
553                break;
554           
555            case 5:
556                MediaPlayer.Play("teema");
557                MessageDisplay.Add("Spy theme activated!");
558                break;
559           
560            case 6:
561                MediaPlayer.Pause();
562                MessageDisplay.Add("Music paused!");
563                break;
564       
565        }
566
567    }
568
569    void VihuAmpuu(PlatformCharacter pahis)
570    {
571            Timer ajastin = new Timer();
572            ajastin.Interval = 1;
573            ajastin.Timeout += delegate
574            {
575                    Vector suunta = (porkkana.Position - pahis.Position).Normalize();
576                    pahis.Angle = suunta.Angle;
577                   
578                    PhysicsObject VihuAmmus = pahis.Weapon.Shoot();
579
580                    pahis.Weapon.ProjectileCollision = VihuAmmusOsui;
581
582                    if (VihuAmmus != null)
583                    {
584                        VihuAmmus.Size *= 0.1;
585                        VihuAmmus.Restitution = 0.1;
586                        VihuAmmus.MaximumLifetime = TimeSpan.FromSeconds(5);
587                    }
588            };
589            ajastin.Start();
590    }
591
592    void VihuAmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
593    {
594        if (kohde.Tag.ToString() == "Porkkana")
595        {
596            porkkanaOttaaOsumaa(1);
597            ammus.Destroy();
598        }
599
600        else
601        {
602            ammus.Destroy();
603        }
604   
605    }
606
607    void porkkanaOttaaOsumaa(double maara)
608    {
609        voimaMittari.Value -= maara;
610
611        if (voimaMittari.Value < 1)
612        {
613            MessageDisplay.Add("You died!");
614            LopetaPeli();
615        }
616    }
617
618    void luoVoimaMittari()
619    {
620        voimaMittari = new DoubleMeter(10);
621        voimaMittari.MaxValue = 10;
622
623        ProgressBar voimaPalkki = new ProgressBar(150, 30);
624        voimaPalkki.BindTo(voimaMittari);
625        Add(voimaPalkki);
626
627        voimaPalkki.X = Screen.Right - 200;
628        voimaPalkki.Y = Screen.Top - 110;
629
630        voimaPalkki.Image = LoadImage("tyhjapalkki");
631        voimaPalkki.BarImage = LoadImage("taysipalkki");
632
633        Label voimaTeksti = new Label("Health: ");
634        voimaTeksti.TextColor = Color.White;
635        voimaTeksti.X = voimaPalkki.X - 100;
636        voimaTeksti.Y = voimaPalkki.Y;
637        Add(voimaTeksti);
638
639    }
640
641    void luoPisteLaskuri()
642    {
643        pisteLaskuri = new IntMeter(0);
644
645        Label pisteNaytto = new Label();
646        pisteNaytto.X = Screen.Left + 100;
647        pisteNaytto.Y = Screen.Top - 100;
648        pisteNaytto.TextColor = Color.White;
649
650        pisteNaytto.BindTo(pisteLaskuri);
651        Add(pisteNaytto);
652
653        Label pisteTeksti = new Label("Points: ");
654        pisteTeksti.X = Screen.Left + 50;
655        pisteTeksti.Y = Screen.Top - 100;
656        pisteTeksti.TextColor = Color.White;
657        Add(pisteTeksti);
658
659    }
660   
661    void LopetaPeli()
662    {
663        MediaPlayer.Play("teema");
664       
665        HighScoreWindow topIkkuna = new HighScoreWindow(
666                             "Highscores",
667                             "Congratulations, you got a highscore %p! Enter your name:",
668                             topLista, pisteLaskuri.Value);
669        topIkkuna.Closed += TallennaPisteet;
670        Add(topIkkuna);
671    }
672
673    void TallennaPisteet(Window sender)
674    {
675        MediaPlayer.Pause();
676        DataStorage.Save<ScoreList>(topLista, "pisteet.xml");
677        ClearAll();
678        ClearGameObjects();
679        Level.Background.Image = ValikkoTaustaKuva;
680        Level.Background.Width = Screen.Width;
681        Level.Background.Height = Screen.Height;
682        Level.Background.Position = Screen.Center;
683
684        valikko();
685    }
686
687    void LuoAmmusLaskin()
688    {
689        ammusLaskuri = new IntMeter(0);
690
691        Label ammusNaytto = new Label();
692        ammusNaytto.X = Screen.Left + 100;
693        ammusNaytto.Y = Screen.Top - 50;
694        ammusNaytto.TextColor = Color.White;
695
696        ammusNaytto.BindTo(porkkana.Weapon.Ammo);
697        Add(ammusNaytto);
698
699        Label ammusTeksti = new Label("Ammo: ");
700        ammusTeksti.X = Screen.Left + 50;
701        ammusTeksti.Y = Screen.Top - 50;
702        ammusTeksti.TextColor = Color.White;
703        Add(ammusTeksti);
704
705    }
706
707    void luoLipas(Vector paikka, double leveys, double korkeus)
708    {
709        PhysicsObject lipas = new PhysicsObject(leveys, korkeus);
710        lipas.Height = 10;
711        lipas.Width = 10;
712        lipas.Image = lippaanKuva;
713        lipas.Tag = "lipas";
714        lipas.Position = paikka;
715        Add(lipas);
716    }
717
718    void luoMaali(Vector paikka, double leveys, double korkeus)
719    {
720        PhysicsObject maali = new PhysicsObject(leveys, korkeus);
721        maali.Color = Color.Gold;
722        maali.Mass = 4;
723        maali.Position = paikka;
724
725        Add(maali);
726
727        AddCollisionHandler(maali, porkkana, delegate
728        {
729            if (IntelKeratty == true)
730            {
731                kenttaNro++;
732                seuraavaKentta(kenttaNro);
733            }
734        });
735
736    }
737
738
739}
Note: See TracBrowser for help on using the repository browser.