source: 2013/23/TopiasT/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1.cs @ 3998

Revision 3998, 22.8 KB checked in by totauria, 10 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8using Jypeli.WP7;
9
10class Vihu : PlatformCharacter
11{
12    private IntMeter elamaLaskuri = new IntMeter(10, 0, 10);
13    public IntMeter ElamaLaskuri { get { return elamaLaskuri; } }
14    public Brain SeuraajaAivot;
15    public Brain RandomAivot;
16    public Timer AmpumaAjastin;
17
18    public Vihu(double leveys, double korkeus)
19        : base(leveys, korkeus)
20    {
21        elamaLaskuri.LowerLimit += delegate { this.Destroy(); };
22    }
23
24    public PhysicsObject AmmuAseella()
25    {
26        PhysicsObject ammus = Weapon.Shoot();
27
28        if (ammus != null)
29        {
30
31            ammus.Size *= 0.6;
32            ammus.IgnoresCollisionResponse = true;
33            //ammus.CollisionIgnoreGroup = 1;
34            //ammus.CollisionIgnoreGroup = 2;
35            ammus.Image = null;
36            ammus.MaximumLifetime = TimeSpan.FromSeconds(0.7);
37            ammus.Color = Color.Red;
38            return ammus;
39        }
40        return null;
41    }
42}
43class pelihahmo : PlatformCharacter
44{
45    private IntMeter elamat = new IntMeter(10, 0, 10);
46    public IntMeter Elamat { get { return elamat; } }
47
48    public pelihahmo(double leveys, double korkeus)
49        : base(leveys, korkeus)
50    {
51
52    }
53}
54
55public class Tasohyppelypeli1 : PhysicsGame
56{
57    const double nopeus = 100;
58    const double hyppyNopeus = 550;
59    const int RUUDUN_KOKO = 40;
60
61    int KenttaNro = 1;
62    pelihahmo pelaaja1;
63    //Timer ajastin1;
64    IntMeter pisteLaskuri;
65    List<Label> valikonKohdat;
66
67    AssaultRifle pelaajan1Ase;
68
69    private Image[] kavelyAnimaatio = LoadImages("hahmo1", "hahmo2", "hahmo3", "hahmo4", "hahmo5", "hahmo6");
70    Image paikallaanAnimaatio = LoadImage("hahmoP");
71    private Image[] hyppyAnimaatio = LoadImages("hahmohyppy9", "hahmohyppy1", "hahmohyppy2", "hahmohyppy3", "hahmohyppy4", "hahmohyppy5", "hahmohyppy6", "hahmohyppy7", "hahmohyppy8", "hahmohyppy9");
72    Animation hyokkaysAnimaatio;
73    Animation hyokkaysAnimaatio2 ;
74 
75
76    Image tahtiKuva = LoadImage("tahti");
77
78    private Image[] kavelyAnimaatio2 = LoadImages("Piru1", "Piru2", "Piru3", "Piru4", "Piru5", "Piru6");
79    Image paikallaanAnimaatio2 = LoadImage("PiruP");
80
81
82    SoundEffect maaliAani = LoadSoundEffect("maali");
83
84    int avainsaatu = 0;
85    int Ase = 0;
86    int Ase2 = 0;
87
88    public override void Begin()
89    {
90#if WINDOWS_PHONE
91        SetWindowSize(800, 480);
92#endif
93        hyokkaysAnimaatio2 = new Animation(LoadImages("hahmoPi", "hahmoPiH"));
94        hyokkaysAnimaatio = new Animation(LoadImages("hahmoP", "hahmoL"));
95        Valikko();
96    }
97    void Valikko()
98    {
99        ClearAll();
100        KenttaNro = 1;
101
102
103        Mouse.IsCursorVisible = true;
104        valikonKohdat = new List<Label>(); // Alustetaan lista, johon valikon kohdat tulevat
105
106        Label kohta1 = new Label("Aloita uusi peli");  // Luodaan uusi Label-olio, joka toimii uuden pelin aloituskohtana
107        kohta1.Position = new Vector(0, 80);  // Asetetaan valikon ensimmäinen kohta hieman kentän keskikohdan yläpuolelle
108        valikonKohdat.Add(kohta1);  // Lisätään luotu valikon kohta listaan jossa kohtia säilytetään
109
110        Label kohta2 = new Label("Lopeta peli");
111        kohta2.Position = new Vector(0, -80);
112        valikonKohdat.Add(kohta2);
113
114        Label kohta3 = new Label("Kauppa");
115        kohta3.Position = new Vector(0, 0);
116        valikonKohdat.Add(kohta3);
117
118        Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, AloitaPeli, null);
119        Mouse.ListenOn(kohta2, MouseButton.Left, ButtonState.Pressed, Exit, null);
120        Mouse.ListenOn(kohta3, MouseButton.Left, ButtonState.Pressed, Kauppa, null);
121        Mouse.ListenMovement(1.0, ValikossaLiikkuminen, null);
122
123        TouchPanel.ListenOn(kohta1, ButtonState.Pressed, AloitaPeliTouch, null);
124        TouchPanel.ListenOn(kohta2, ButtonState.Pressed, poistu, null);
125        TouchPanel.ListenOn(kohta3, ButtonState.Pressed, kauppaTouch, null);
126
127        // Lisätään kaikki luodut kohdat peliin foreach-silmukalla
128        foreach (Label valikonKohta in valikonKohdat)
129        {
130            Add(valikonKohta);
131        }
132    }
133    void poistu(Touch touch)
134    {
135        ConfirmExit();
136    }
137    void kauppaTouch(Touch touch)
138    {
139        Kauppa();
140    }
141
142    void AloitaPeliTouch(Touch touch)
143    {
144        AloitaPeli();
145    }
146
147    void Kauppa()
148    {
149       
150            ClearAll();
151
152            KenttaNro = 0;
153
154            Mouse.IsCursorVisible = true;
155            valikonKohdat = new List<Label>(); // Alustetaan lista, johon valikon kohdat tulevat
156
157            Level.Width = 700;
158            Level.Height = 900;
159            LuoPistelaskuri();
160            Camera.ZoomToLevel();
161            Camera.StayInLevel = false;
162
163            if (DataStorage.Exists("ase.xml"))
164                Ase = DataStorage.Load<int>(Ase, "ase.xml");
165
166            Label kohta1 = new Label();
167
168            if (Ase == 0)
169            { kohta1.Text = ("Osta 10000"); }
170            else
171            { kohta1.Text = ("Myy 7000"); }
172           
173            kohta1.Position = new Vector(-150, 20);
174            valikonKohdat.Add(kohta1);
175
176            Label kohta2 = new Label("Takaisin");
177            kohta2.Position = new Vector(-180, -150);
178            valikonKohdat.Add(kohta2);
179
180            TouchPanel.ListenOn(kohta1, ButtonState.Pressed, ostaPistooli, null);
181            TouchPanel.ListenOn(kohta2, ButtonState.Pressed, ValikkoT, null);
182            Mouse.ListenMovement(1.0, ValikossaLiikkuminen, null);
183
184            // Lisätään kaikki luodut kohdat peliin foreach-silmukalla
185            foreach (Label valikonKohta in valikonKohdat)
186            {
187                Add(valikonKohta);
188            }
189
190
191            Widget pistooli = new Widget(308, 258);
192            pistooli.Position = new Vector(-280, 120);
193            pistooli.Image = LoadImage("Pistoolik");
194            Add(pistooli, 1);
195
196            PhoneBackButton.Listen(Valikko, null);
197       
198    }
199    void ValikkoT(Touch touch)
200    {
201        Valikko();
202    }
203    void ValikossaLiikkuminen(AnalogState hiirenTila)
204    {
205        foreach (Label kohta in valikonKohdat)
206        {
207            if (Mouse.IsCursorOn(kohta))
208            {
209                kohta.TextColor = Color.Red;
210            }
211            else
212            {
213                kohta.TextColor = Color.Black;
214            }
215
216        }
217    }
218    void AloitaPeli()
219    {
220        ClearAll();
221
222        if (DataStorage.Exists("ase.xml"))
223            Ase = DataStorage.Load<int>(Ase, "ase.xml");
224
225        Gravity = new Vector(0, -1000);
226
227        if (KenttaNro == 1)
228            LuoKentta("kentta1");
229
230        if (KenttaNro == 2)
231            LuoKentta("kentta2");
232
233        LisaaNappaimet();
234        Luovoimamittari();
235        LuoPistelaskuri();
236
237        Camera.Follow(pelaaja1);
238        Camera.ZoomFactor = 5;
239        Camera.StayInLevel = true;
240        Level.CreateBorders();
241
242    }
243    void SeuraavaTaso()
244    {
245        KenttaNro++;
246        AloitaPeli();
247    }
248
249
250    void LuoKentta(string kenttaTiedostonNimi)
251    {
252        pelaaja1 = new pelihahmo(20, 20);
253        pelaaja1.Elamat.LowerLimit += delegate
254        {
255            Camera.ZoomFactor = 1;
256            Explosion rajahdys = new Explosion(800);
257            rajahdys.Position = pelaaja1.Position;
258            rajahdys.Speed = 80.0;
259            rajahdys.ShockwaveReachesObject += PaineaaltoOsuu;
260            Add(rajahdys);
261            pelaaja1.Destroy();
262
263            Timer ajastin = new Timer();
264            ajastin.Interval = 5.8;
265            ajastin.Timeout += delegate
266            {
267
268                Valikko();
269
270            };
271            ajastin.Start();
272
273        };
274
275       
276        ColorTileMap ruudut = ColorTileMap.FromLevelAsset(kenttaTiedostonNimi);
277
278        ruudut.SetTileMethod(Color.Green, LisaaPelaaja);
279        ruudut.SetTileMethod(Color.Black, LisaaTaso);
280        ruudut.SetTileMethod(Color.Yellow, LisaaTahti);
281        ruudut.SetTileMethod(Color.Red, Luopiru);
282        ruudut.SetTileMethod(new Color(127, 0, 0), LuoOvi);
283        ruudut.SetTileMethod(new Color(1, 0, 0), Luopalikka);
284        ruudut.SetTileMethod(new Color(128, 128, 128), LuoAvain);
285        ruudut.SetTileMethod(new Color(75, 255, 0), Luoportti);
286
287        ruudut.Execute(20, 20);
288
289
290    }
291
292    void LisaaTaso(Vector paikka, double leveys, double korkeus)
293    {
294        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
295        taso.Position = paikka;
296        taso.Tag = "taso";
297        taso.Color = Color.Green;
298        Add(taso);
299    }
300
301    void LisaaTahti(Vector paikka, double leveys, double korkeus)
302    {
303        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
304        tahti.IgnoresCollisionResponse = true;
305        tahti.Position = paikka;
306        tahti.Image = tahtiKuva;
307        tahti.Tag = "tahti";
308        Add(tahti);
309    }
310
311    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
312    {
313        pelaaja1.Position = paikka;
314        pelaaja1.Mass = 4.0;
315        // pelaaja1.Image = pelaajanKuva;
316        pelaaja1.Tag = "pelaaja";
317        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
318
319        pelaaja1.CollisionIgnoreGroup = 1;
320        pelaaja1.AnimWalk = new Animation(kavelyAnimaatio);
321        pelaaja1.AnimWalk.FPS = 10;
322        pelaaja1.AnimJump = new Animation(hyppyAnimaatio);
323        pelaaja1.AnimJump.FPS = 18;
324        if (Ase == 0)
325        {
326            pelaaja1.AnimIdle = new Animation(paikallaanAnimaatio);
327        }
328        else if (Ase == 1)
329        {
330            pelaaja1.AnimIdle = LoadImage("HahmoPi");
331        }
332        else if (Ase == 2)
333        {
334            pelaaja1.AnimIdle = LoadImage("HahmoPi");
335        }
336
337        Timer ajastin2 = new Timer();
338        ajastin2.Interval = 2;
339        ajastin2.Timeout += delegate
340        {
341
342            pelaaja1.Elamat.Value++;
343
344        };
345        ajastin2.Start();
346
347        pelaajan1Ase = new AssaultRifle(0.1, 0.1);
348
349        //Ammusten määrä aluksi:
350        pelaajan1Ase.Ammo.Value = 1000;
351        pelaajan1Ase.Power.DefaultValue = 100;
352        //Mitä tapahtuu kun ammus osuu johonkin?
353        pelaajan1Ase.ProjectileCollision = AmmusOsui;
354        pelaajan1Ase.X = -6.0;
355        pelaajan1Ase.Y = 3.3;
356        //        pelaaja1.Add(pelaajan1Ase);
357        pelaaja1.Weapon = pelaajan1Ase;
358        Add(pelaaja1);
359
360    }
361
362    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
363    {
364        if (kohde is Vihu)
365        {
366            pisteLaskuri.Value += 10;
367            if (Ase == 0)
368            {
369                ((Vihu)kohde).ElamaLaskuri.Value -= 2;
370            }
371            else if (Ase == 1)
372            {
373                ((Vihu)kohde).ElamaLaskuri.Value -= 4;
374            }
375          /*  else if (Ase == 2)
376            {
377                ((Vihu)kohde).ElamaLaskuri.Value -= 8;
378            }*/
379        }
380        ammus.Destroy();
381    }
382
383
384    void LisaaNappaimet()
385    {
386        Widget vasen = new Widget(80, 80);
387        vasen.X = Screen.Left + 80;
388        vasen.Y = Screen.Bottom + 80;
389        vasen.Image = LoadImage("Vasen");
390        Add(vasen);
391
392        TouchPanel.ListenOn(vasen, ButtonState.Down, liikuV, null);
393
394        Widget oikea = new Widget(80, 80);
395        oikea.X = Screen.Left + 180;
396        oikea.Y = Screen.Bottom + 80;
397        oikea.Image = LoadImage("Oikea");
398        Add(oikea);
399
400        TouchPanel.ListenOn(oikea, ButtonState.Down, liikuO, null);
401
402        Widget hyppy = new Widget(80, 80);
403        hyppy.X = Screen.Left + 130;
404        hyppy.Y = Screen.Bottom + 160;
405        hyppy.Image = LoadImage("Ylös");
406        Add(hyppy);
407
408        TouchPanel.ListenOn(hyppy, ButtonState.Down, Hyppy, null);
409
410
411        Widget isku = new Widget(80, 80);
412        isku.X = Screen.Right - 130;
413        isku.Y = Screen.Bottom + 80;
414        isku.Image = LoadImage("Isku");
415        Add(isku);
416
417        TouchPanel.ListenOn(isku, ButtonState.Pressed, iskee, null);
418
419        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
420        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Valikko, "Lopeta peli");
421
422        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
423        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
424        Keyboard.Listen(Key.Space, ButtonState.Pressed, AmmuAseella, "Ammu", pelaajan1Ase);
425        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
426
427       
428
429
430        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
431
432        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
433        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
434        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
435
436        PhoneBackButton.Listen(Pauselle, "pause");
437    }
438    void liikuV(Touch Touch)
439    {
440        Liikuta(pelaaja1, -nopeus);
441    }
442    void liikuO(Touch Touch)
443    {
444        Liikuta(pelaaja1, nopeus);
445    }
446    void Hyppy(Touch Touch)
447    {
448        Hyppaa(pelaaja1, hyppyNopeus);
449    }
450    void iskee(Touch touch)
451    {
452        AmmuAseella(pelaajan1Ase);
453    }
454    void AmmuAseella(AssaultRifle ase)
455    {
456        PhysicsObject ammus = ase.Shoot();
457
458        if (ammus != null)
459        {
460            ammus.Size *= 0.4;
461            if (Ase == 0)
462            {
463                ammus.CollisionIgnoreGroup = 1;
464                ammus.Image = null;
465                ammus.MaximumLifetime = TimeSpan.FromSeconds(0.02);
466                ammus.Color = Color.Transparent;
467
468            }
469            else if(Ase ==1)
470            {
471                ammus.Size *= 2;
472                ammus.Image = LoadImage("luoti");
473                ammus.MaximumLifetime = TimeSpan.FromSeconds(2);
474
475            }
476            /*     else if (Ase == 2)
477                 {
478                     ammus.Size *= 2;
479                     ammus.Image = LoadImage("Hauli");
480                     ammus.MaximumLifetime = TimeSpan.FromSeconds(0.3);
481                 }*/
482        }
483        if (Ase == 0)
484        {
485            pelaaja1.PlayAnimation(hyokkaysAnimaatio);
486        }
487        else if (Ase == 1)
488        {
489            pelaaja1.PlayAnimation(hyokkaysAnimaatio2);
490        }
491
492
493    }
494
495    void Liikuta(PlatformCharacter hahmo, double nopeus)
496    {
497        hahmo.Walk(nopeus);
498    }
499
500    void Hyppaa(PlatformCharacter hahmo, double nopeus)
501    {
502        hahmo.Jump(nopeus);
503    }
504
505    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
506    {
507        tahti.Destroy();
508        maaliAani.Play();
509        pisteLaskuri.Value += 10;
510
511    }
512
513    void Luopiru(Vector paikka, double leveys, double korkeus)
514    {
515        Vihu piru = new Vihu(15, 20);
516        piru.Position = paikka;
517        piru.Tag = "piru";
518        piru.Image = LoadImage("Piru");
519        piru.Mass = 8;
520        //AddCollisionHandler(piru, "pelaaja", pirulyo);
521        //piru.CollisionIgnoreGroup = 2;
522        Add(piru);
523
524        piru.AnimWalk = new Animation(kavelyAnimaatio2);
525        piru.AnimWalk.FPS = 10;
526        piru.AnimIdle = new Animation(paikallaanAnimaatio2);
527
528        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
529        tasoAivot.Speed = 40;
530        piru.Brain = tasoAivot;
531
532        FollowerBrain seuraajaAivot = new FollowerBrain(pelaaja1);
533        seuraajaAivot.Speed = 50;
534        piru.Brain = seuraajaAivot;
535
536        piru.RandomAivot = tasoAivot;
537        piru.SeuraajaAivot = seuraajaAivot;
538
539        AssaultRifle pirunase = new AssaultRifle(15.0, 15.0);
540
541        //Ammusten määrä aluksi:
542        pirunase.Image = null;
543        pirunase.Color = Color.Transparent;
544        pirunase.Ammo.Value = 1000;
545        pirunase.Power.Value = 30;
546        pirunase.Power.DefaultValue = 30;
547        pirunase.Power.MaxValue = 30;
548        //pirunase.X = -7.0;
549        pirunase.Angle += Angle.FromDegrees(1);
550        pirunase.CanHitOwner = false;
551
552        //Mitä tapahtuu kun ammus osuu johonkin?
553        pirunase.ProjectileCollision = PirunAmmusOsui;
554
555        //        pelaaja1.Add(pelaajan1Ase);
556        piru.Weapon = pirunase;
557        //        piru.Weapon.CanHitOwner = tru;
558
559        //Physics2DDotNet.Ignorers.ObjectIgnorer ignorer = new Physics2DDotNet.Ignorers.ObjectIgnorer();
560        //piru.CollisionIgnorer = ignorer;
561
562        Timer ajastin1 = new Timer();
563        ajastin1.Interval = 0.5;
564        ajastin1.Timeout += delegate
565        {
566            //PhysicsObject ammus = 
567            piru.AmmuAseella();
568            //if (ammus != null) ammus.CollisionIgnorer = ignorer;
569
570        };
571        piru.AmpumaAjastin = ajastin1;
572
573        Timer ajastin = new Timer();
574        ajastin.Interval = 0.5;
575        ajastin.Timeout += delegate
576        {
577            double etaisyys = Vector.Distance(piru.Position, pelaaja1.Position);
578            if (etaisyys < 70)
579            {
580                piru.AmpumaAjastin.Start();
581            }
582            else
583                piru.AmpumaAjastin.Stop();
584
585            if (etaisyys < 100)
586            {
587                piru.Brain = piru.SeuraajaAivot;
588            }
589            else
590            {
591                piru.AmpumaAjastin.Stop();
592                piru.Brain = piru.RandomAivot;
593            }
594            if (piru.ElamaLaskuri.Value == 0)
595            {
596                piru.Weapon.Destroy();
597                piru.AmpumaAjastin.Stop();
598                ajastin.Stop();
599            }
600
601        };
602        ajastin.Start();
603
604        // piru.ElamaLaskuri.LowerLimit += delegate { piru.Destroy(); };;       
605    }
606
607    void Luovoimamittari()
608    {
609        ProgressBar elamaPalkki = new ProgressBar(200, 30);
610        elamaPalkki.X = Screen.Left + 150;
611        elamaPalkki.Y = Screen.Top - 40;
612        elamaPalkki.Image = LoadImage("tyhjä");
613        elamaPalkki.BarImage = LoadImage("täys");
614        elamaPalkki.BindTo(pelaaja1.Elamat);
615        Add(elamaPalkki);
616    }
617
618
619    void PirunAmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
620    {
621        if (kohde == pelaaja1)
622        {
623            pelaaja1.Elamat.Value--;
624
625        }
626        if (kohde.Tag.Equals("palikka"))
627        {
628            return;
629        }
630        ammus.Destroy();
631    }
632    void LuoOvi(Vector paikka, double leveys, double korkeus)
633    {
634        PhysicsObject ovi = PhysicsObject.CreateStaticObject(20, 60);
635        ovi.Image = LoadImage("ovi");
636        ovi.Position = paikka;
637        AddCollisionHandler(ovi, "pelaaja", tormaaOveen);
638        // ovi.CollisionIgnoreGroup = 1;
639        Add(ovi);
640    }
641    void Luopalikka(Vector paikka, double leveys, double korkeus)
642    {
643        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
644        palikka.Position = paikka;
645        palikka.Color = Color.Transparent;
646        palikka.CollisionIgnoreGroup = 1;
647        palikka.Tag = "palikka";
648        Add(palikka);
649
650    }
651    void LuoAvain(Vector paikka, double leveys, double korkeus)
652    {
653        PhysicsObject avain = PhysicsObject.CreateStaticObject(40, 20);
654        avain.Position = paikka;
655        avain.Image = LoadImage("avain");
656        AddCollisionHandler(avain, "pelaaja", tormaaAvaimeen);
657        //avain.CollisionIgnoreGroup = 1;
658        Add(avain);
659    }
660    void tormaaAvaimeen(PhysicsObject avain, PhysicsObject hahmo)
661    {
662        avain.Destroy();
663        avainsaatu = 1;
664    }
665    void tormaaOveen(PhysicsObject ovi, PhysicsObject hahmo)
666    {
667        if (avainsaatu > 0)
668        {
669            ovi.Destroy();
670            avainsaatu--;
671        }
672    }
673    void LuoPistelaskuri()
674    {
675        pisteLaskuri = new IntMeter(0);
676
677        Label pisteNaytto = new Label();
678        pisteNaytto.X = Screen.Left + 100;
679        pisteNaytto.Y = Screen.Top - 100;
680        pisteNaytto.TextColor = Color.Black;
681        pisteNaytto.Font = Font.DefaultLargeBold;
682        pisteNaytto.Color = Color.Transparent;
683
684        pisteNaytto.BindTo(pisteLaskuri);
685        Add(pisteNaytto);
686
687        if (DataStorage.Exists("pisteet.xml"))
688            pisteLaskuri = DataStorage.Load<IntMeter>(pisteLaskuri, "pisteet.xml");
689    }
690    void Luoportti(Vector paikka, double leveys, double korkeus)
691    {
692        PhysicsObject portti = PhysicsObject.CreateStaticObject(20, 40);
693        portti.Position = paikka;
694        portti.Image = LoadImage("Portti");
695        AddCollisionHandler(portti, "pelaaja", tormaaPorttiin);
696        //avain.CollisionIgnoreGroup = 1;
697        Add(portti);
698    }
699    void tormaaPorttiin(PhysicsObject portti, PhysicsObject hahmo)
700    {
701        PlaySound("maali");
702        portti.Destroy();
703        DataStorage.Save<IntMeter>(pisteLaskuri, "pisteet.xml");
704        SeuraavaTaso();
705    }
706    void PaineaaltoOsuu(IPhysicsObject olio, Vector shokki)
707    {
708        olio.Destroy();
709   
710    }
711    void ostaPistooli(Touch tuoch)
712    {
713
714        LuoPistelaskuri();
715        if (DataStorage.Exists("ase.xml"))
716            Ase = DataStorage.Load<int>(Ase, "ase.xml");
717
718        if (pisteLaskuri > 10000 && Ase == 0)
719        {
720            Ase = 1;
721            DataStorage.Save<int>(Ase, "ase.xml");
722            pisteLaskuri.Value -= 10000;
723        }
724        else if(Ase == 1)
725        {
726            Ase = 0;
727            DataStorage.Save<int>(Ase, "ase.xml");
728            pisteLaskuri.Value += 7000;
729        }
730        DataStorage.Save<IntMeter>(pisteLaskuri, "pisteet.xml");
731        Kauppa();
732    }
733    void ostaHaulikko(Touch tuoch)
734    {
735
736        LuoPistelaskuri();
737        if (DataStorage.Exists("ase2.xml"))
738            Ase2 = DataStorage.Load<int>(Ase2, "ase2.xml");
739
740        if (pisteLaskuri > 10000 && Ase == 0)
741        {
742            Ase2 = 1;
743            DataStorage.Save<int>(Ase2, "ase2.xml");
744            pisteLaskuri.Value -= 10000;
745        }
746        else if (Ase2 == 1)
747        {
748            Ase2 = 0;
749            DataStorage.Save<int>(Ase2, "ase.xml");
750            pisteLaskuri.Value += 7000;
751        }
752        DataStorage.Save<IntMeter>(pisteLaskuri, "pisteet.xml");
753        Kauppa();
754    }
755    void Pauselle()
756    {
757        IsPaused = true;
758        MultiSelectWindow valikko = new MultiSelectWindow("Pause",
759    "Jatka", "Valikkoon");
760        valikko.ItemSelected += PainettiinValikonNappia;
761        Add(valikko);
762    }
763    void PainettiinValikonNappia(int valinta)
764    {
765        switch (valinta)
766        {
767            case 0:
768                IsPaused= false;
769                break;
770            case 1:
771                IsPaused = false;
772                Valikko();
773                break;
774        }
775    }
776}
Note: See TracBrowser for help on using the repository browser.