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

Revision 3044, 21.2 KB checked in by akosrahi, 9 years ago (diff)

ampuvan vihun kanssa antaa error coden muuten melkein valmis.
täytyisi velä lisätä vahinko ääni pelaajalle ja se olis siinä :D

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       
295        Ammus.Destroy();
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 AmmusOsuiPelaajaan(PhysicsObject Ammus, PhysicsObject Kohde)
385    {
386        if (Kohde == pelaaja1)
387        {
388            Ammus.Destroy();
389            voimaMittari.Value += -5;
390        }
391
392    }
393
394    void VihollinenAmpuu()
395    {
396       new PhysicsObject VihuAmmus = vihollinen2.Weapon.Shoot();
397       
398        if (VihuAmmus != null)
399        {
400            VihuAmmus.Size *= 0.5;
401            VihuAmmus.IgnoresGravity = true;
402            VihuAmmus.MaximumLifetime = TimeSpan.FromSeconds(4.1);
403            AddCollisionHandler(VihuAmmus, AmmusOsuiPelaajaan);
404        }
405    }
406
407    void KasitteleVihollinenKuoli(PhysicsObject Ammus, PhysicsObject kohde)
408    {
409        if (kohde.Tag.ToString() == "vihollinen")
410        {
411            eliminointiAani.Play();
412            pisteLaskuri.Value += 50;
413            kohde.Destroy();
414            MessageDisplay.Add("vihollinen eliminoitu");
415
416        }
417
418    }
419    PhysicsObject lisaaMaali()
420    {
421        PhysicsObject Maali = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO);
422        Maali.Image = maalinkuva;
423        AddCollisionHandler(Maali, KasitteleMaaliinTulo);
424        return Maali;
425
426    }
427
428    PhysicsObject LisaaAmmusPaketti()
429    {
430        PhysicsObject AmmusPaketti = new PhysicsObject(40, 30);
431        AmmusPaketti.Image = AmmuksenKuva;
432        AmmusPaketti.Mass = (50);
433        AddCollisionHandler(pelaaja1, AmmusPaketti, KeraaAmmus);
434
435
436        return AmmusPaketti;
437
438    }
439
440    PhysicsObject LisaaKulta()
441    {
442        PhysicsObject Kulta = new PhysicsObject(70, 30);
443        Kulta.Image = KullanKuva;
444        Kulta.Mass = (50);
445        Kulta.Tag = "kulta";
446        AddCollisionHandler(pelaaja1, Kulta, Keraakulta);
447
448        return Kulta;
449    }
450
451    PhysicsObject Lisaalaake()
452    {
453        PhysicsObject Laake = new PhysicsObject(50, 40);
454        Laake.Image = laakekuva;
455        Laake.Mass = (50);
456        Laake.Tag = "laake";
457        AddCollisionHandler(pelaaja1, Laake, Keraalaake);
458
459        return Laake;
460    }
461
462    void KeraaAmmus(IPhysicsObject pelaaja1, IPhysicsObject AmmusPaketti)
463    {
464        (pelaaja1 as PlatformCharacter).Weapon.Ammo.Value += 5;
465        MessageDisplay.Add("5 ammusta lisätty");
466        Ammuskerattu.Play();
467        AmmusPaketti.Destroy();
468       
469
470    }
471
472
473    void Keraakulta(IPhysicsObject tormaaja, IPhysicsObject kohde)
474    {
475        pisteLaskuri.Value += 100;
476        MessageDisplay.Add("100$");
477        Kultakerattu.Play();
478       
479        kohde.Destroy();
480    }
481
482    void Keraalaake(IPhysicsObject tormaaja, IPhysicsObject kohde)
483    {
484        voimaMittari.Value += 25;
485        MessageDisplay.Add("Terveyttä nostettu");
486        Yappee.Play();
487        kohde.Destroy();
488    }
489
490    void KasitteleMaaliinTulo(PhysicsObject Maali, PhysicsObject kohde)
491    {
492        if (kohde == pelaaja1)
493        {
494            kenttaNro++;
495            SeuraavaKentta(kenttaNro);
496        }
497    }
498    void Valikko()
499    {
500        ClearAll();
501
502        Level.Background.Image = tekstinkuva;
503        valikonKohdat = new List<Label>();
504
505        Label kohta1 = new Label("Aloita kenttä");
506        kohta1.Position = new Vector(300, -20);
507        valikonKohdat.Add(kohta1);
508
509        Label kohta2 = new Label("Lopeta");
510        kohta2.Position = new Vector(300, -60);
511        valikonKohdat.Add(kohta2);
512       
513
514        foreach (Label valikonKohta in valikonKohdat)
515        {
516            Add(valikonKohta);
517        }
518
519        Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, SeuraavaKentta, null, kenttaNro);
520        Mouse.ListenOn(kohta2, MouseButton.Left, ButtonState.Pressed, Exit, null);
521
522        Mouse.IsCursorVisible = true;
523        Mouse.ListenMovement(1.0, ValikossaLiikkuminen, null);
524        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "");
525    }
526
527    void ValikossaLiikkuminen(AnalogState hiirenTila)
528    {
529        foreach (Label kohta in valikonKohdat)
530        {
531            if (Mouse.IsCursorOn(kohta))
532            {
533                kohta.TextColor = Color.Yellow;
534            }
535            else
536            {
537                kohta.TextColor = Color.YellowGreen;
538            }
539
540        }
541    }
542    void AloitaPeli()
543    {
544        ClearAll();
545        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Valikko, "Palaa valikkoon");
546
547    }
548    PhysicsObject LisaaPiikkilanka()
549    {
550        PhysicsObject Piikkilanka = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO);
551        Piikkilanka.Image = piikkilangankuva;
552        Piikkilanka.Tag = "Ansa";
553
554        return Piikkilanka;
555    }
556
557    PhysicsObject Lisaamaa()
558    {
559        PhysicsObject maa = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO);
560        maa.Image = maankuva;
561        return maa;
562    }
563
564    PhysicsObject Lisaaseina()
565    {
566        PhysicsObject seina = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO);
567        seina.Image = maankuva;
568        seina.Tag = "seina";
569        return seina;
570    }
571
572
573 
574
575    void TahtaaYlos()
576    {
577        if (pelaaja1.FacingDirection == Direction.Right)
578        {
579            pelaaja1.Weapon.Angle += Angle.FromDegrees(6);
580        }
581        if (pelaaja1.FacingDirection == Direction.Left)
582        {
583            pelaaja1.Weapon.Angle += Angle.FromDegrees(-6);
584        }
585    }
586
587    void TahtaaAlas()
588    {
589        if (pelaaja1.FacingDirection == Direction.Right)
590        {
591            pelaaja1.Weapon.Angle += Angle.FromDegrees(-6);
592        }
593        if (pelaaja1.FacingDirection == Direction.Left)
594        {
595            pelaaja1.Weapon.Angle += Angle.FromDegrees(6);
596        }
597    }
598
599    void LuoAmmusLaskuri()
600    {
601        ammusLaskuri = new IntMeter(0);
602
603        Label ammusNaytto = new Label();
604        ammusNaytto.X = Screen.Right - 100;
605        ammusNaytto.Y = Screen.Top - 100;
606        ammusNaytto.TextColor = Color.White;
607        ammusNaytto.BindTo(pelaaja1.Weapon.Ammo);
608        Add(ammusNaytto);
609
610        Label ammusTeksti = new Label("Ammuksia jäljellä: ");
611        ammusTeksti.X = Screen.Right - 200;
612        ammusTeksti.Y = Screen.Top - 100;
613        ammusTeksti.TextColor = Color.White;
614        Add(ammusTeksti);
615    }
616
617
618    void LuoLaskuri()
619    {
620        pisteLaskuri = new IntMeter(pisteet);
621        Label pisteNaytto = new Label();
622        pisteNaytto.X = Screen.Left + 200;
623        pisteNaytto.Y = Screen.Top - 100;
624        pisteNaytto.TextColor = Color.White;
625        pisteNaytto.BindTo(pisteLaskuri);
626        Add(pisteNaytto);
627
628        Label pisteTeksti = new Label("Pisteet: ");
629        pisteTeksti.X = Screen.Left + 150;
630        pisteTeksti.Y = Screen.Top - 100;
631        pisteTeksti.TextColor = Color.White;
632        Add(pisteTeksti);
633    }
634
635    void LisaavoimaMittari()
636    {
637
638
639        voimaMittari = new DoubleMeter(100);
640        voimaMittari.MaxValue = 100;
641        voimaMittari.LowerLimit += delegate { LopetaPeli(); }; 
642
643        ProgressBar voimaPalkki = new ProgressBar(300, 30);
644        voimaPalkki.BindTo(voimaMittari);
645        Add(voimaPalkki);
646
647
648        voimaPalkki.X = Screen.Right - 700;
649        voimaPalkki.Y = Screen.Top - 100;
650        voimaPalkki.Angle = Angle.RightAngle;
651        voimaPalkki.BarColor = Color.Green;
652        voimaPalkki.Angle = Angle.FromDegrees(0);
653        voimaPalkki.Image = LoadImage("tyhjapalkki");
654        voimaPalkki.BarImage = LoadImage("taysipalkki");
655
656        Label voimaTeksti = new Label(" Terveys: ");
657        voimaTeksti.X = Screen.Right - 900;
658        voimaTeksti.Y = Screen.Top - 100;
659        voimaTeksti.TextColor = Color.White;
660        Add(voimaTeksti);
661    }
662
663    void LopetaPeli()
664    {
665        pelaaja1.Destroy();
666        MediaPlayer.Stop();
667       
668        HighScoreWindow topIkkuna = new HighScoreWindow(
669                             "Parhaat pisteet",
670                             "Onneksi olkoon, pääsit listalle pisteillä %p! Syötä nimesi:",
671                             topLista, pisteLaskuri.Value);
672        topIkkuna.Closed += Lol;
673        Add(topIkkuna);
674
675    }
676    void Lol(Window sender)
677    {
678        DataStorage.Save<ScoreList>(topLista, "pisteet.xml");
679        pisteLaskuri.Reset();
680        pisteet = 0;
681        ClearAll();
682        Begin();
683    }
684
685
686
687    public PhysicsObject VihuAmmus { get; set; }
688}
Note: See TracBrowser for help on using the repository browser.