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

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