source: 2012/24/AkiR/Fight the Rambo/Fight the Rambo/Fight the Rambo/Peli.cs @ 3045

Revision 3045, 21.2 KB checked in by akosrahi, 10 years ago (diff)

åitää saada ampuva vihu toimimaan

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9
10public class Peli : PhysicsGame
11{
12    const double nopeus = 300;
13    const double hyppyNopeus = 750;
14    const int RUUDUN_KOKO = 30;
15    ScoreList topLista = new ScoreList(10, false, 0);
16    PlatformCharacter pelaaja1;
17    GameObject pelaajanpaikka;
18    PlatformCharacter vihollinen;
19    PlatformCharacter vihollinen2;
20    PlatformCharacter Maali;
21    PlatformCharacter Piikkilanka;
22    List<Label> valikonKohdat;
23    IntMeter ammusLaskuri;
24    Image tekstinkuva = LoadImage("TEKSTI");
25    Image piikkilangankuva = LoadImage("spikewire");
26    Image pelaajanKuva = LoadImage("rambo2");
27    Image vihollisenkuva = LoadImage("Nuhasotilas");
28    Image maalinkuva = LoadImage("goal");
29    Image LisaaPelaajanKentallekuvan = LoadImage("sponer");
30    Image maankuva = LoadImage("ground");
31    Image aidankuva = LoadImage("fence");
32    Image KullanKuva = LoadImage("Kulta");
33    Image AmmuksenKuva = LoadImage("Ammus");
34    Image taustakuva = LoadImage("tausta");
35    Image laakekuva = LoadImage("laake");
36    SoundEffect eliminointiAani = LoadSoundEffect("kill");
37    SoundEffect alkuaani = LoadSoundEffect("GameStarts");
38    SoundEffect Ammuskerattu = LoadSoundEffect("bullet");
39    SoundEffect Kultakerattu = LoadSoundEffect("cash");
40    SoundEffect Yappee = LoadSoundEffect("yappee");
41   
42   
43    Image[] paikallaanVasemmalle = LoadImages("rambo2", "rambo3");
44    Image[] paikallaanOikealle;
45    Image[] kavelyVasemmalle = LoadImages("rambo2", "rambo3");
46    Image[] kavelyOikealle;
47
48    Image[] VihollinenpaikallaanVasemmalle = LoadImages("Nuhasotilas1", "Nuhasotilas");
49    Image[] VihollinenpaikallaanOikealle;
50    Image[] VihollinenKavelyVasemmalle = LoadImages("Nuhasotilas1","Nuhasotilas");
51    Image[] VihollinenKavelyOikealle;
52
53
54    int pisteet = 0;
55
56    IntMeter pisteLaskuri;
57
58    DoubleMeter voimaMittari;
59
60    int kenttaNro = 1;
61
62    public override void Begin()
63    {
64        ClearAll();
65        if (DataStorage.Exists("pisteet.xml"))
66            topLista = DataStorage.Load<ScoreList>(topLista, "pisteet.xml");
67        Valikko();
68    }
69
70    void SeuraavaKentta(int kentanNro)
71    {
72        if(pisteLaskuri != null)
73            pisteet = pisteLaskuri.Value;
74        ClearAll();
75
76        // Hypyn jälkeen kävelyanimaatio ei toimi, jypelin bugi??
77        paikallaanOikealle = Image.Mirror(paikallaanVasemmalle);
78        kavelyOikealle = Image.Mirror(kavelyVasemmalle);
79
80        VihollinenpaikallaanOikealle = Image.Mirror(VihollinenpaikallaanVasemmalle);
81        VihollinenKavelyOikealle = Image.Mirror(VihollinenKavelyVasemmalle);
82
83        Gravity = new Vector(0, -1000);
84        alkuaani.Play();
85
86       
87
88       
89        LuoLaskuri();
90        LisaavoimaMittari();
91        if (kentanNro == 1) luoKentta1();
92        else if (kentanNro == 2) LuoKentta2();
93        else if (kentanNro == 3) LuoKentta3();
94        else if (kentanNro == 4) LuoKentta4();
95        else if (kentanNro > 4) LopetaPeli();
96        lisaaNappaimet();
97        LuoAmmusLaskuri();
98       
99        Camera.Follow(pelaaja1);
100        Camera.ZoomFactor = 2.0;
101        Camera.StayInLevel = true;
102
103
104    }
105
106    void luoKentta1()
107    {
108        lisaaPelaaja(15);
109        MediaPlayer.Play("tunnari");
110
111        TileMap kentta = TileMap.FromFile("kentta1.txt");
112        kentta['G'] = lisaaMaali;
113        kentta['E'] = lisaaVihollinen;
114        kentta['U'] = lisaaVihollinen2;
115        kentta['#'] = lisaaTaso;
116        kentta['N'] = lisaapelaajanPaikka;
117        kentta['S'] = LisaaPiikkilanka;
118        kentta['M'] = Lisaamaa;
119        kentta['A'] = LisaaAmmusPaketti;
120        kentta['T'] = LisaaKulta;
121        kentta['X'] = Lisaaseina;
122        kentta['H'] = Lisaalaake;
123        kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO);
124
125        pelaaja1.Position = pelaajanpaikka.Position;
126
127        Level.CreateBorders();
128        Level.Background.CreateGradient(Color.Brown, Color.Blue); 
129        Level.Background.Image = taustakuva;
130    }
131    void LuoKentta2()
132    {
133        lisaaPelaaja(20);
134        MediaPlayer.Play("tunnari");
135
136        TileMap kentta = TileMap.FromFile("TextFile2.txt");
137        kentta['G'] = lisaaMaali;
138        kentta['E'] = lisaaVihollinen;
139        kentta['#'] = Lisaamaa;
140        kentta['N'] = lisaapelaajanPaikka;
141        kentta['S'] = LisaaPiikkilanka;
142        kentta['A'] = LisaaAmmusPaketti;
143        kentta['X'] = Lisaaseina;
144        kentta['T'] = LisaaKulta;
145        kentta['H'] = Lisaalaake;
146        kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO);
147
148        pelaaja1.Position = pelaajanpaikka.Position;
149
150        Level.CreateBorders();
151        Level.Background.CreateGradient(Color.Brown, Color.Blue);
152        Level.Background.Image = taustakuva;
153    }
154
155
156    void LuoKentta3()
157    {
158        lisaaPelaaja(20);
159        MediaPlayer.Play("tunnari");
160
161        TileMap kentta = TileMap.FromFile("TextFile3.txt");
162        kentta['G'] = lisaaMaali;
163        kentta['E'] = lisaaVihollinen;
164        kentta['U'] = lisaaVihollinen2;
165        kentta['#'] = Lisaamaa;
166        kentta['N'] = lisaapelaajanPaikka;
167        kentta['S'] = LisaaPiikkilanka;
168        kentta['A'] = LisaaAmmusPaketti;
169        kentta['X'] = Lisaaseina;
170        kentta['T'] = LisaaKulta;
171        kentta['H'] = Lisaalaake;
172        kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO);
173
174        pelaaja1.Position = pelaajanpaikka.Position;
175
176        Level.CreateBorders();
177        Level.Background.CreateGradient(Color.Brown, Color.Blue);
178        Level.Background.Image = taustakuva;
179    }
180    void LuoKentta4()
181    {
182        lisaaPelaaja(20);
183        MediaPlayer.Play("tunnari");
184
185        TileMap kentta = TileMap.FromFile("TextFile1.txt");
186        kentta['G'] = lisaaMaali;
187        kentta['E'] = lisaaVihollinen;
188        kentta['#'] = Lisaamaa;
189        kentta['N'] = lisaapelaajanPaikka;
190        kentta['S'] = LisaaPiikkilanka;
191        kentta['A'] = LisaaAmmusPaketti;
192        kentta['X'] = Lisaaseina;
193        kentta['T'] = LisaaKulta;
194        kentta['H'] = Lisaalaake;
195        kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO);
196
197        pelaaja1.Position = pelaajanpaikka.Position;
198
199        Level.CreateBorders();
200        Level.Background.CreateGradient(Color.Blue, Color.Black);
201        Level.Background.Image = taustakuva;
202
203    }
204    GameObject lisaapelaajanPaikka()
205    {
206        pelaajanpaikka = new GameObject(100, 150);
207        pelaajanpaikka.Image = LisaaPelaajanKentallekuvan;
208        return pelaajanpaikka;
209    }
210
211    PhysicsObject lisaaTaso()
212    {
213        PhysicsObject taso = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO);
214        taso.Color = Color.Black;
215        return taso;
216    }
217
218    PlatformCharacter lisaaPelaaja(int ammukset)
219    {
220        pelaaja1 = new PlatformCharacter(30, 60);
221        pelaaja1.Mass = 8.00;
222        pelaaja1.Image = pelaajanKuva;
223
224        pelaaja1.Weapon = new AssaultRifle(50, 20);
225        pelaaja1.Weapon.ProjectileCollision = AmmusOsui;
226        pelaaja1.Weapon.Ammo.Value = ammukset;
227        pelaaja1.Tag = "pelaaja";
228        pelaaja1.Weapon.Y = -2;
229        pelaaja1.Weapon.X = 2.3;
230
231        pelaaja1.RightIdleAnimation = new Animation(paikallaanVasemmalle);
232        pelaaja1.LeftIdleAnimation = new Animation(paikallaanOikealle);
233        pelaaja1.RightWalkingAnimation = new Animation(kavelyVasemmalle);
234        pelaaja1.LeftWalkingAnimation = new Animation(kavelyOikealle);
235        pelaaja1.LeftWalkingAnimation.FPS = 10;
236        pelaaja1.RightWalkingAnimation.FPS = 10;
237        pelaaja1.LeftIdleAnimation.FPS = 10;
238        pelaaja1.RightIdleAnimation.FPS = 10;
239
240        Add(pelaaja1, 1);
241        AddCollisionHandler(pelaaja1, "vihollinen", CollisionHandler.AddMeterValue(voimaMittari, -10));
242        AddCollisionHandler(pelaaja1, "Ansa", CollisionHandler.AddMeterValue(voimaMittari, -20));
243       
244       
245        Vector oikea = new Vector(10000, 50);
246        Vector vaara = new Vector(1000, 500);
247        AddCollisionHandler(pelaaja1, "vihollinen", CollisionHandler.HitTarget(oikea));
248        AddCollisionHandler(pelaaja1, "Ansa", CollisionHandler.HitTarget(vaara));
249       
250        return pelaaja1;
251    }
252
253   
254
255
256    void lisaaNappaimet()
257    {
258        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
259        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Valikko, "Poistu pelistä");
260
261        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
262        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
263        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
264        Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu");
265        Keyboard.Listen(Key.W, ButtonState.Down, TahtaaYlos, "Tähtää ylös rynnäkkökiväärillä");
266        Keyboard.Listen(Key.S, ButtonState.Down, TahtaaAlas, "Tähtää alas rynnäkkökiväärillä");
267    }
268
269    void liikuta(PlatformCharacter hahmo, double nopeus)
270    {
271        hahmo.Walk(nopeus);
272    }
273
274    void hyppaa(PlatformCharacter hahmo, double nopeus)
275    {
276        hahmo.Jump(1000.0);
277    }
278
279
280
281    void AmmuAseella()
282    {
283        PhysicsObject Ammus = pelaaja1.Weapon.Shoot();
284        if (Ammus != null)
285        {
286            Ammus.Size *= 0.5;
287            Ammus.IgnoresGravity = true;
288            Ammus.MaximumLifetime = TimeSpan.FromSeconds(4.1);
289            AddCollisionHandler(Ammus, KasitteleVihollinenKuoli);
290        }
291    }
292    void AmmusOsui(PhysicsObject Ammus, PhysicsObject Kohde)
293    {
294        Ammus.Destroy();
295       
296    }
297
298
299
300
301
302    PlatformCharacter lisaaVihollinen()
303    {
304        PlatformCharacter vihollinen = new PlatformCharacter(40, 80);
305        vihollinen.Mass = 3.5;
306        vihollinen.Image = vihollisenkuva;
307        vihollinen.Tag = "vihollinen";
308        vihollinen.IgnoresGravity = false;
309
310        vihollinen.LeftIdleAnimation = new Animation(VihollinenpaikallaanVasemmalle);
311        vihollinen.RightIdleAnimation = new Animation(VihollinenpaikallaanOikealle);
312        vihollinen.LeftWalkingAnimation = new Animation(VihollinenKavelyVasemmalle);
313        vihollinen.RightWalkingAnimation = new Animation(VihollinenKavelyOikealle);
314        vihollinen.CanMoveOnAir = true;
315        vihollinen.LeftWalkingAnimation.FPS = 10;
316        vihollinen.RightWalkingAnimation.FPS = 10;
317        vihollinen.LeftIdleAnimation.FPS = 10;
318        vihollinen.RightIdleAnimation.FPS = 10;
319       
320     
321        FollowerBrain seuraajanAivot = new FollowerBrain();
322        seuraajanAivot.Target = pelaaja1;
323        seuraajanAivot.Speed = 100;
324        seuraajanAivot.StopWhenTargetClose = false;
325        seuraajanAivot.TargetFollowDistance = 30;
326        seuraajanAivot.FollowAlways = true;
327        seuraajanAivot.Active = true;
328        vihollinen.Brain = seuraajanAivot;
329
330        AddCollisionHandler(vihollinen, "seina", delegate(PhysicsObject tormaaja, PhysicsObject kohde) { vihollinen.Jump(2000);});
331
332
333        return vihollinen;
334    }
335
336    PlatformCharacter lisaaVihollinen2()
337    {
338        PlatformCharacter vihollinen2 = new PlatformCharacter(40, 80);
339        vihollinen2.Mass = 3.5;
340        vihollinen2.Image = vihollisenkuva;
341        vihollinen2.Tag = "vihollinen2";
342        vihollinen2.IgnoresGravity = false;
343
344        vihollinen2.Weapon = new PlasmaCannon(50, 20);
345        vihollinen2.Weapon.ProjectileCollision = AmmusOsuiPelaajaan;
346        vihollinen2.Weapon.Y = -2;
347        vihollinen2.Weapon.X = 2.3;
348
349        vihollinen2.LeftIdleAnimation = new Animation(VihollinenpaikallaanVasemmalle);
350        vihollinen2.RightIdleAnimation = new Animation(VihollinenpaikallaanOikealle);
351        vihollinen2.LeftWalkingAnimation = new Animation(VihollinenKavelyVasemmalle);
352        vihollinen2.RightWalkingAnimation = new Animation(VihollinenKavelyOikealle);
353        vihollinen2.CanMoveOnAir = true;
354        vihollinen2.LeftWalkingAnimation.FPS = 10;
355        vihollinen2.RightWalkingAnimation.FPS = 10;
356        vihollinen2.LeftIdleAnimation.FPS = 10;
357        vihollinen2.RightIdleAnimation.FPS = 10;
358
359        Timer ajastin = new Timer();
360        ajastin.Interval = 3.5;
361        //ajastin.Timeout += delegate { VihollinenAmpuu();  };
362        ajastin.Start();
363
364
365        FollowerBrain seuraajanAivot = new FollowerBrain();
366        seuraajanAivot.Target = pelaaja1;
367        seuraajanAivot.Speed = 100;
368        seuraajanAivot.StopWhenTargetClose = false;
369        seuraajanAivot.TargetFollowDistance = 30;
370        seuraajanAivot.FollowAlways = true;
371        seuraajanAivot.Active = true;
372        vihollinen2.Brain = seuraajanAivot;
373
374        Vector suunta = (pelaaja1.Position - vihollinen2.Position).Normalize();
375        vihollinen2.Angle = pelaaja1.Angle;
376       
377
378        AddCollisionHandler(vihollinen2, "seina", delegate(PhysicsObject tormaaja, PhysicsObject kohde) { vihollinen2.Jump(2000); });
379
380
381        return vihollinen2;
382    }
383
384 //void VihollinenAmpuu()
385 //   {
386 //      PhysicsObject VihuAmmus = vihollinen2.Weapon.Shoot();
387       
388 //       if (VihuAmmus != null)
389 //       {
390 //           VihuAmmus.Size *= 0.5;
391 //           VihuAmmus.IgnoresGravity = true;
392 //           VihuAmmus.MaximumLifetime = TimeSpan.FromSeconds(4.1);
393 //           AddCollisionHandler(VihuAmmus, AmmusOsuiPelaajaan);
394    //    }
395    //}
396    void AmmusOsuiPelaajaan(PhysicsObject VihuAmmus, PhysicsObject Kohde)
397    {
398        if (Kohde == pelaaja1)
399        {
400            VihuAmmus.Destroy();
401            voimaMittari.Value += -5;
402        }
403
404    }
405
406   
407
408    void KasitteleVihollinenKuoli(PhysicsObject Ammus, PhysicsObject kohde)
409    {
410        if (kohde.Tag.ToString() == "vihollinen")
411        {
412            eliminointiAani.Play();
413            pisteLaskuri.Value += 50;
414            kohde.Destroy();
415            MessageDisplay.Add("vihollinen eliminoitu");
416
417        }
418
419    }
420    PhysicsObject lisaaMaali()
421    {
422        PhysicsObject Maali = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO);
423        Maali.Image = maalinkuva;
424        AddCollisionHandler(Maali, KasitteleMaaliinTulo);
425        return Maali;
426
427    }
428
429    PhysicsObject LisaaAmmusPaketti()
430    {
431        PhysicsObject AmmusPaketti = new PhysicsObject(40, 30);
432        AmmusPaketti.Image = AmmuksenKuva;
433        AmmusPaketti.Mass = (50);
434        AddCollisionHandler(pelaaja1, AmmusPaketti, KeraaAmmus);
435
436
437        return AmmusPaketti;
438
439    }
440
441    PhysicsObject LisaaKulta()
442    {
443        PhysicsObject Kulta = new PhysicsObject(70, 30);
444        Kulta.Image = KullanKuva;
445        Kulta.Mass = (50);
446        Kulta.Tag = "kulta";
447        AddCollisionHandler(pelaaja1, Kulta, Keraakulta);
448
449        return Kulta;
450    }
451
452    PhysicsObject Lisaalaake()
453    {
454        PhysicsObject Laake = new PhysicsObject(50, 40);
455        Laake.Image = laakekuva;
456        Laake.Mass = (50);
457        Laake.Tag = "laake";
458        AddCollisionHandler(pelaaja1, Laake, Keraalaake);
459
460        return Laake;
461    }
462
463    void KeraaAmmus(IPhysicsObject pelaaja1, IPhysicsObject AmmusPaketti)
464    {
465        (pelaaja1 as PlatformCharacter).Weapon.Ammo.Value += 5;
466        MessageDisplay.Add("5 ammusta lisätty");
467        Ammuskerattu.Play();
468        AmmusPaketti.Destroy();
469       
470
471    }
472
473
474    void Keraakulta(IPhysicsObject tormaaja, IPhysicsObject kohde)
475    {
476        pisteLaskuri.Value += 100;
477        MessageDisplay.Add("100$");
478        Kultakerattu.Play();
479       
480        kohde.Destroy();
481    }
482
483    void Keraalaake(IPhysicsObject tormaaja, IPhysicsObject kohde)
484    {
485        voimaMittari.Value += 25;
486        MessageDisplay.Add("Terveyttä nostettu");
487        Yappee.Play();
488        kohde.Destroy();
489    }
490
491    void KasitteleMaaliinTulo(PhysicsObject Maali, PhysicsObject kohde)
492    {
493        if (kohde == pelaaja1)
494        {
495            kenttaNro++;
496            SeuraavaKentta(kenttaNro);
497        }
498    }
499    void Valikko()
500    {
501        ClearAll();
502
503        Level.Background.Image = tekstinkuva;
504        valikonKohdat = new List<Label>();
505
506        Label kohta1 = new Label("Aloita kenttä");
507        kohta1.Position = new Vector(300, -20);
508        valikonKohdat.Add(kohta1);
509
510        Label kohta2 = new Label("Lopeta");
511        kohta2.Position = new Vector(300, -60);
512        valikonKohdat.Add(kohta2);
513       
514
515        foreach (Label valikonKohta in valikonKohdat)
516        {
517            Add(valikonKohta);
518        }
519
520        Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, SeuraavaKentta, null, kenttaNro);
521        Mouse.ListenOn(kohta2, MouseButton.Left, ButtonState.Pressed, Exit, null);
522
523        Mouse.IsCursorVisible = true;
524        Mouse.ListenMovement(1.0, ValikossaLiikkuminen, null);
525        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "");
526    }
527
528    void ValikossaLiikkuminen(AnalogState hiirenTila)
529    {
530        foreach (Label kohta in valikonKohdat)
531        {
532            if (Mouse.IsCursorOn(kohta))
533            {
534                kohta.TextColor = Color.Yellow;
535            }
536            else
537            {
538                kohta.TextColor = Color.YellowGreen;
539            }
540
541        }
542    }
543    void AloitaPeli()
544    {
545        ClearAll();
546        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Valikko, "Palaa valikkoon");
547
548    }
549    PhysicsObject LisaaPiikkilanka()
550    {
551        PhysicsObject Piikkilanka = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO);
552        Piikkilanka.Image = piikkilangankuva;
553        Piikkilanka.Tag = "Ansa";
554
555        return Piikkilanka;
556    }
557
558    PhysicsObject Lisaamaa()
559    {
560        PhysicsObject maa = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO);
561        maa.Image = maankuva;
562        return maa;
563    }
564
565    PhysicsObject Lisaaseina()
566    {
567        PhysicsObject seina = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO);
568        seina.Image = maankuva;
569        seina.Tag = "seina";
570        return seina;
571    }
572
573
574 
575
576    void TahtaaYlos()
577    {
578        if (pelaaja1.FacingDirection == Direction.Right)
579        {
580            pelaaja1.Weapon.Angle += Angle.FromDegrees(6);
581        }
582        if (pelaaja1.FacingDirection == Direction.Left)
583        {
584            pelaaja1.Weapon.Angle += Angle.FromDegrees(-6);
585        }
586    }
587
588    void TahtaaAlas()
589    {
590        if (pelaaja1.FacingDirection == Direction.Right)
591        {
592            pelaaja1.Weapon.Angle += Angle.FromDegrees(-6);
593        }
594        if (pelaaja1.FacingDirection == Direction.Left)
595        {
596            pelaaja1.Weapon.Angle += Angle.FromDegrees(6);
597        }
598    }
599
600    void LuoAmmusLaskuri()
601    {
602        ammusLaskuri = new IntMeter(0);
603
604        Label ammusNaytto = new Label();
605        ammusNaytto.X = Screen.Right - 100;
606        ammusNaytto.Y = Screen.Top - 100;
607        ammusNaytto.TextColor = Color.White;
608        ammusNaytto.BindTo(pelaaja1.Weapon.Ammo);
609        Add(ammusNaytto);
610
611        Label ammusTeksti = new Label("Ammuksia jäljellä: ");
612        ammusTeksti.X = Screen.Right - 200;
613        ammusTeksti.Y = Screen.Top - 100;
614        ammusTeksti.TextColor = Color.White;
615        Add(ammusTeksti);
616    }
617
618
619    void LuoLaskuri()
620    {
621        pisteLaskuri = new IntMeter(pisteet);
622        Label pisteNaytto = new Label();
623        pisteNaytto.X = Screen.Left + 200;
624        pisteNaytto.Y = Screen.Top - 100;
625        pisteNaytto.TextColor = Color.White;
626        pisteNaytto.BindTo(pisteLaskuri);
627        Add(pisteNaytto);
628
629        Label pisteTeksti = new Label("Pisteet: ");
630        pisteTeksti.X = Screen.Left + 150;
631        pisteTeksti.Y = Screen.Top - 100;
632        pisteTeksti.TextColor = Color.White;
633        Add(pisteTeksti);
634    }
635
636    void LisaavoimaMittari()
637    {
638
639
640        voimaMittari = new DoubleMeter(100);
641        voimaMittari.MaxValue = 100;
642        voimaMittari.LowerLimit += delegate { LopetaPeli(); }; 
643
644        ProgressBar voimaPalkki = new ProgressBar(300, 30);
645        voimaPalkki.BindTo(voimaMittari);
646        Add(voimaPalkki);
647
648
649        voimaPalkki.X = Screen.Right - 700;
650        voimaPalkki.Y = Screen.Top - 100;
651        voimaPalkki.Angle = Angle.RightAngle;
652        voimaPalkki.BarColor = Color.Green;
653        voimaPalkki.Angle = Angle.FromDegrees(0);
654        voimaPalkki.Image = LoadImage("tyhjapalkki");
655        voimaPalkki.BarImage = LoadImage("taysipalkki");
656
657        Label voimaTeksti = new Label(" Terveys: ");
658        voimaTeksti.X = Screen.Right - 900;
659        voimaTeksti.Y = Screen.Top - 100;
660        voimaTeksti.TextColor = Color.White;
661        Add(voimaTeksti);
662    }
663
664    void LopetaPeli()
665    {
666        pelaaja1.Destroy();
667        MediaPlayer.Stop();
668       
669        HighScoreWindow topIkkuna = new HighScoreWindow(
670                             "Parhaat pisteet",
671                             "Onneksi olkoon, pääsit listalle pisteillä %p! Syötä nimesi:",
672                             topLista, pisteLaskuri.Value);
673        topIkkuna.Closed += Lol;
674        Add(topIkkuna);
675
676    }
677    void Lol(Window sender)
678    {
679        DataStorage.Save<ScoreList>(topLista, "pisteet.xml");
680        pisteLaskuri.Reset();
681        pisteet = 0;
682        ClearAll();
683        Begin();
684    }
685
686
687
688    public PhysicsObject VihuAmmus { get; set; }
689}
Note: See TracBrowser for help on using the repository browser.