source: 2017/27/AnttiN/Kullankaivaja/Kullankaivaja/Kullankaivaja/Kullankaivaja.cs @ 8957

Revision 8957, 22.6 KB checked in by npo17_45, 5 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Kullankaivaja : PhysicsGame
10{
11
12    //tämä on peli
13    //tai oikeastaan sen koodi
14
15    const double nopeus = 200;
16    const double hyppyNopeus = 650;
17    const int RUUDUN_KOKO = 40;
18
19    int pisteet = 10000;
20    IntMeter rahalaskuri;
21
22    IntMeter muovilapioita = new IntMeter(1);
23    IntMeter ampareita = new IntMeter(0);
24
25    PlatformCharacter pelaaja1;
26
27    SoundEffect maaliAani = LoadSoundEffect("maali");
28    Image pelaajanKuva = LoadImage("Kaivaja");
29    Image tahtiKuva = LoadImage("tahti");
30    Image ruohomaa = LoadImage("Ruohomaa");
31    Image maa = LoadImage("Maa");
32    Image hiekkakuva = LoadImage("Hiekka");
33    Image kuparikuva = LoadImage("Kupari");
34    Image hopeakuva = LoadImage("Hopea");
35    Image vahankultaakuva = LoadImage("Vahankultaa");
36    Image paljonkultaakuva = LoadImage("Paljonkultaa");
37    Image tyhjaruutukuva = LoadImage("Tyhjaruutu");
38    Image valitturuutukuva = LoadImage("Valitturuutu");
39    Image taustakuva = LoadImage("Tausta");
40    Image inventorylapiokuva = LoadImage("Inventorylapio");
41    Image inventoryvalittulapiokuva = LoadImage("Inventoryvalittulapio");
42    Image lautaseinakuva = LoadImage("Lautaseina");
43    Image lelupussikuva = LoadImage("Lelupussi");
44    Image suljekuva = LoadImage("Sulje");
45    Image avaalelupussikuva = LoadImage("Avaalelupussi");
46    Image muovilapiokuva = LoadImage("Muovilapio");
47    Image tyhjakuva = LoadImage("Tyhja");
48    Image tyhjavalittukuva = LoadImage("Tyhjavalittu");
49    Image amparikuva = LoadImage("Ampari");
50    Image inventoryamparikuva = LoadImage("Inventoryampari");
51    Image lautaseina2kuva = LoadImage("Lautaseinatavarat");
52
53
54    Inventory inventory;
55    Inventory inventory2;
56    int esinelaskuri = 0;
57
58    public override void Begin()
59    {
60        Level.Size = Screen.Size;
61        Level.Background.Image = taustakuva;
62        Level.Background.FitToLevel();
63        IsFullScreen = false;
64        Timer.SingleShot(0.1, LuoAlkuvalikko);
65    }
66
67    void LuoAlkuvalikko()
68    {
69
70        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko",
71"Aloita peli", "Lopeta");
72        alkuValikko.AddItemHandler(0, AloitaPeli);
73        alkuValikko.AddItemHandler(1, Exit);
74        Add(alkuValikko);
75
76    }
77
78    void AloitaPeli()
79    {
80        ClearAll();
81        LuoKentta();
82        Level.Background.Image = taustakuva;
83
84        Camera.Follow(pelaaja1);
85        Camera.ZoomFactor = 1.2;
86        Camera.StayInLevel = true;
87
88        Gravity = new Vector(0, -500);
89
90        Luopainikkeet();
91        LisaaNappaimet();
92        LisaaMuut();
93
94    }
95
96    void LisaaMuut()
97    {
98        //rahalaskuri laskemaan ja näyttämään rahat
99        rahalaskuri = new IntMeter(pisteet);
100
101        Label pisteNaytto = new Label();
102        pisteNaytto.X = Screen.Left + 100;
103        pisteNaytto.Y = Screen.Top - 100;
104        pisteNaytto.TextColor = Color.Black;
105        pisteNaytto.Color = Color.White;
106
107        pisteNaytto.Title = "Rahaa";
108        pisteNaytto.BindTo(rahalaskuri);
109        Add(pisteNaytto);
110
111        Image kuva1 = inventorylapiokuva;
112        Image kuva2 = tyhjaruutukuva;
113        Image kuva3 = tyhjaruutukuva;
114
115        if (inventory != null)
116        {
117            kuva1 = inventory.esineet[0].Image;
118            kuva2 = inventory.esineet[1].Image;
119            kuva3 = inventory.esineet[2].Image;
120        }
121
122        inventory = new Inventory();
123        inventory.Bottom = Screen.Bottom + 50;
124        inventory.X = 0;
125        Add(inventory);
126
127        inventory.AddItem(null, kuva1);
128        inventory.AddItem(null, kuva2);
129        inventory.AddItem(null, kuva3);
130
131        inventory2 = new Inventory();
132        inventory2.Bottom = Screen.Bottom + 50;
133        inventory2.X = 0;
134        Add(inventory2);
135
136        inventory2.AddItem(null, tyhjavalittukuva);
137        inventory2.AddItem(null, tyhjakuva);
138        inventory2.AddItem(null, tyhjakuva);
139
140        // kaytossa = inventory.Objects[tyokalunPaikanNumero];
141
142
143    }
144    void LuoKentta()
145    {
146        TileMap kentta = TileMap.FromLevelAsset("kentta1");
147        kentta.SetTileMethod('#', LisaaTaso);
148        kentta.SetTileMethod('M', LisaaMaa);
149        kentta.SetTileMethod('*', LisaaTahti);
150        kentta.SetTileMethod('N', LisaaPelaaja);
151        kentta.SetTileMethod('P', LisaaMalmi);
152        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
153        Level.CreateBorders();
154        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
155
156        MessageDisplay.AbsolutePosition = new Vector(1650, 0);
157
158
159    }
160
161    void Luopainikkeet()
162    {
163
164        PushButton pause = new PushButton(LoadImage("Taukonappain"));
165        pause.X = Screen.Left + 50;
166        pause.Y = Screen.Top - 50;
167        pause.Clicked += Pausevalikko;
168        Add(pause);
169
170        PushButton asetukset = new PushButton(LoadImage("Asetusnappain"));
171        asetukset.Width *= 2;
172        asetukset.Height *= 2;
173
174        asetukset.Right = Screen.Right;
175        asetukset.Bottom = Screen.Bottom;
176
177        asetukset.Clicked += Asetusvalikko;
178        Add(asetukset);
179
180    }
181    void Pausevalikko()
182    {
183        Pause();
184        MultiSelectWindow pauseValikko = new MultiSelectWindow("Tauko", "Jatka", "Lopeta");
185        pauseValikko.AddItemHandler(0, Pause);
186        pauseValikko.AddItemHandler(1, Exit);
187        Add(pauseValikko);
188
189    }
190
191    void Asetusvalikko()
192    {
193
194        Pause();
195        MultiSelectWindow asetusValikko = new MultiSelectWindow("Asetukset", "Nollaa palikat || hinta:150", "Kauppa", "Tavarat", "Sulje");
196        asetusValikko.AddItemHandler(0, Nollaa);
197        asetusValikko.AddItemHandler(1, Kauppa);
198        asetusValikko.AddItemHandler(2, Tavarat);
199        asetusValikko.AddItemHandler(3, Pause);
200        Add(asetusValikko);
201
202    }
203
204
205    void Tavarat()
206    {
207
208        inventory.Y = 2000;
209        inventory2.Y = 2000;
210        PushButton tausta = new PushButton(lautaseina2kuva);
211        tausta.Width = Screen.Width;
212        tausta.Height = Screen.Height;
213        Add(tausta);
214
215        PushButton sulje = new PushButton(suljekuva);
216        sulje.Right = Screen.Right;
217        sulje.Top = Screen.Top;
218        Add(sulje);
219
220
221        //muutettavat inventoryruudut
222        PushButton Inventoryruutu1 = new PushButton(inventory.esineet[0].Image);
223        Inventoryruutu1.X = -200;
224        Inventoryruutu1.Y = 200;
225        Inventoryruutu1.Size *= 2;
226        Add(Inventoryruutu1);
227
228        PushButton Inventoryruutu2 = new PushButton(inventory.esineet[1].Image);
229        Inventoryruutu2.X = 0;
230        Inventoryruutu2.Y = 200;
231        Inventoryruutu2.Size *= 2;
232        Add(Inventoryruutu2);
233
234        PushButton Inventoryruutu3 = new PushButton(inventory.esineet[2].Image);
235        Inventoryruutu3.X = 200;
236        Inventoryruutu3.Y = 200;
237        Inventoryruutu3.Size *= 2;
238        Add(Inventoryruutu3);
239
240        PushButton asetatyhjaruutu = new PushButton(tyhjaruutukuva);
241        asetatyhjaruutu.X = -900;
242        asetatyhjaruutu.Size *= 2;
243        Add(asetatyhjaruutu);
244
245        PushButton asetamuovilapio = new PushButton(muovilapiokuva);
246        asetamuovilapio.X = -750;
247        asetamuovilapio.Size *= 0.7;
248        Add(asetamuovilapio);
249
250        Label lapiomaara = new Label(muovilapioita);
251        lapiomaara.Position = asetamuovilapio.Position + new Vector(0, -100);
252        Add(lapiomaara); 
253
254        PushButton asetaampari = new PushButton(amparikuva);
255        asetaampari.X = -550;
256        asetaampari.Size *= 0.3;
257        Add(asetaampari);
258
259        Label amparimaara = new Label(ampareita);
260        amparimaara.Position = asetaampari.Position + new Vector(0, -100);
261        Add(amparimaara);
262
263        Image valittu = tyhjaruutukuva;
264
265        asetatyhjaruutu.Clicked += delegate
266        {
267            valittu = tyhjaruutukuva;
268        };
269
270        asetamuovilapio.Clicked += delegate
271        {
272            valittu = inventorylapiokuva;
273        };
274
275        asetaampari.Clicked += delegate
276        {
277            valittu = inventoryamparikuva;
278        };
279
280
281        Inventoryruutu1.Clicked += delegate
282        {
283            inventory.esineet[0].Image = valittu;
284            Inventoryruutu1.Image = valittu;
285        };
286        Inventoryruutu2.Clicked += delegate
287        {
288            inventory.esineet[1].Image = valittu;
289            Inventoryruutu2.Image = valittu;
290        };
291        Inventoryruutu3.Clicked += delegate
292        {
293            inventory.esineet[2].Image = valittu;
294            Inventoryruutu3.Image = valittu;
295        };
296
297
298
299
300        sulje.Clicked += delegate
301        {
302
303            tausta.Destroy();
304            sulje.Destroy();
305            Inventoryruutu1.Destroy();
306            Inventoryruutu2.Destroy();
307            Inventoryruutu3.Destroy();
308            asetatyhjaruutu.Destroy();
309            asetamuovilapio.Destroy();
310            asetaampari.Destroy();
311            lapiomaara.Destroy();
312            amparimaara.Destroy();
313            inventory.Bottom = Screen.Bottom + 50;
314            inventory2.Bottom = Screen.Bottom + 50;
315            IsPaused = false;
316
317        };
318
319    }
320
321    void Kauppa()
322    {
323
324        inventory.Y = 2000;
325        inventory2.Y = 2000;
326        PushButton tausta = new PushButton(lautaseinakuva);
327        tausta.Width = Screen.Width;
328        tausta.Height = Screen.Height;
329        Add(tausta);
330
331        PushButton sulje = new PushButton(suljekuva);
332        sulje.Right = Screen.Right;
333        sulje.Top = Screen.Top;
334        Add(sulje);
335
336        PushButton lelupussi = new PushButton(lelupussikuva);
337        lelupussi.Size *= 3;
338        lelupussi.X = -800;
339        lelupussi.Y = +150;
340        Add(lelupussi);
341        lelupussi.Clicked += delegate
342        {
343
344            if (rahalaskuri.Value >= 100)
345            {
346                rahalaskuri.Value -= 100;
347
348                sulje.Destroy();
349                lelupussi.Destroy();
350
351                PushButton saatukama = new PushButton(muovilapiokuva);
352                saatukama.X = 150;
353                saatukama.Size *= 0.7;
354                saatukama.IsVisible = false;
355                Add(saatukama);
356
357                Label kamamaara = new Label("0");
358                kamamaara.Position = saatukama.Position + new Vector(0, -100);
359                kamamaara.IsVisible = false;
360                Add(kamamaara);
361               
362                int klikkauksia = 2;
363                int tavaroitaAnnettu = 0;
364
365                PushButton avaalelupussi = new PushButton(avaalelupussikuva);
366                avaalelupussi.Size *= 3;
367                avaalelupussi.X = -150;
368                avaalelupussi.Y = 0;
369                Add(avaalelupussi);
370                avaalelupussi.Clicked += delegate
371                {
372                    if (klikkauksia > 0)
373                    {
374                        int annetaanTavaroita = 0;
375
376                        if (klikkauksia == 2) annetaanTavaroita = RandomGen.NextInt(1, 5);
377                        else annetaanTavaroita = 5 - tavaroitaAnnettu;
378                        tavaroitaAnnettu += annetaanTavaroita;
379                        klikkauksia--;
380
381                        saatukama.IsVisible = true;
382                        kamamaara.IsVisible = true;
383
384                        kamamaara.Text = "" + annetaanTavaroita;
385
386                        int arvottu = RandomGen.SelectOne(1, 1, 2);
387                        if(arvottu == 1)
388                        {
389                            saatukama.Image = muovilapiokuva;
390                            muovilapioita.Value += annetaanTavaroita;
391                        }
392                        if (arvottu == 2)
393                        {
394                            saatukama.Image = amparikuva;
395                            ampareita.Value += annetaanTavaroita;
396                        }
397                    }
398                    else
399                    {
400                        tausta.Destroy();
401                        sulje.Destroy();
402                        lelupussi.Destroy();
403                        avaalelupussi.Destroy();
404                        saatukama.Destroy();
405                        kamamaara.Destroy();
406                        Kauppa();
407                    }
408                };
409            }
410
411            else
412            {
413                tausta.Destroy();
414                sulje.Destroy();
415                lelupussi.Destroy();
416                Kauppa();
417            }
418
419
420        };
421
422
423        sulje.Clicked += delegate
424        {
425
426            tausta.Destroy();
427            sulje.Destroy();
428            lelupussi.Destroy();
429            inventory.Bottom = Screen.Bottom + 50;
430            inventory2.Bottom = Screen.Bottom + 50;
431            IsPaused = false;
432
433        };
434
435
436    }
437    void LisaaTaso(Vector paikka, double leveys, double korkeus)
438    {
439        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
440        taso.Position = paikka;
441        taso.Image = ruohomaa;
442        taso.Tag = "taso";
443        Add(taso);
444    }
445
446    void LisaaMaa(Vector paikka, double leveys, double korkeus)
447    {
448
449        PhysicsObject multa = PhysicsObject.CreateStaticObject(leveys, korkeus);
450        multa.Position = paikka;
451        multa.Image = maa;
452        multa.Tag = "maa";
453        Add(multa);
454
455    }
456
457    void LisaaMalmi(Vector paikka, double leveys, double korkeus)
458    {
459        //sattumanvarainen kuutio
460        int Kuutio = RandomGen.SelectOne(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 5);
461
462        if (Kuutio == 1)
463        {
464            PhysicsObject hiekka = PhysicsObject.CreateStaticObject(leveys, korkeus);
465            hiekka.Position = paikka;
466            hiekka.Image = hiekkakuva;
467            hiekka.Tag = "hiekka";
468            Add(hiekka);
469        }
470
471        if (Kuutio == 2)
472        {
473            PhysicsObject kupari = PhysicsObject.CreateStaticObject(leveys, korkeus);
474            kupari.Position = paikka;
475            kupari.Image = kuparikuva;
476            kupari.Tag = "kupari";
477            Add(kupari);
478        }
479
480        if (Kuutio == 3)
481        {
482            PhysicsObject hopea = PhysicsObject.CreateStaticObject(leveys, korkeus);
483            hopea.Position = paikka;
484            hopea.Image = hopeakuva;
485            hopea.Tag = "hopea";
486            Add(hopea);
487        }
488
489        if (Kuutio == 4)
490        {
491            PhysicsObject vahankultaa = PhysicsObject.CreateStaticObject(leveys, korkeus);
492            vahankultaa.Position = paikka;
493            vahankultaa.Image = vahankultaakuva;
494            vahankultaa.Tag = "vahankultaa";
495            Add(vahankultaa);
496        }
497
498        if (Kuutio == 5)
499        {
500            PhysicsObject paljonkultaa = PhysicsObject.CreateStaticObject(leveys, korkeus);
501            paljonkultaa.Position = paikka;
502            paljonkultaa.Image = paljonkultaakuva;
503            paljonkultaa.Tag = "paljonkultaa";
504            Add(paljonkultaa);
505        }
506
507    }
508    void LisaaTahti(Vector paikka, double leveys, double korkeus)
509    {
510        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
511        tahti.IgnoresCollisionResponse = true;
512        tahti.Position = paikka;
513        tahti.Image = tahtiKuva;
514        tahti.Tag = "tahti";
515        Add(tahti);
516    }
517
518    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
519    {
520        pelaaja1 = new PlatformCharacter(leveys * 0.9, korkeus * 2);
521        pelaaja1.Position = paikka;
522        pelaaja1.Mass = 1.0;
523        pelaaja1.Image = pelaajanKuva;
524        pelaaja1.StaticFriction = 0;
525        pelaaja1.KineticFriction = 0;
526        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
527        Add(pelaaja1);
528    }
529
530    void LisaaNappaimet()
531    {
532        IsMouseVisible = true;
533
534        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, Klikkaa, null);
535        Mouse.Listen(MouseButton.Left, ButtonState.Released, LaskeIrti, null);
536        Mouse.ListenWheel(Vaihdaesine, "vaihda inventoryesineitä");
537
538        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
539        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Pausevalikko, "Pause");
540
541        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
542        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
543        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
544        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
545        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
546        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
547
548
549
550        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
551        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
552        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
553        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
554
555        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
556    }
557
558    Timer hajotusAjastin;
559
560    void LaskeIrti()
561    {
562        if (hajotusAjastin != null)
563        {
564            hajotusAjastin.Stop();
565        }
566    }
567
568    void Klikkaa()
569    {
570
571        if (inventory.esineet[esinelaskuri].Image == inventorylapiokuva || inventory.esineet[esinelaskuri].Image == inventoryamparikuva)
572        {
573            Vector paikka = Mouse.PositionOnWorld;
574            List<GameObject> oliot = GetObjectsAt(paikka, 1);
575            foreach (GameObject g in oliot)
576            {
577                if (Vector.Distance(pelaaja1.Position, g.Position) < 160 && !g.Equals(pelaaja1) && !g.Tag.Equals("maa") && !g.Tag.Equals("taso"))
578                {
579                    double kerroin = 1.0;
580                    if (inventory.esineet[esinelaskuri].Image == inventoryamparikuva)
581                    {
582                        kerroin = 0.5;
583                    }
584
585                    hajotusAjastin = new Timer();
586                    hajotusAjastin.Interval = 0.5 * kerroin;
587                    if (g.Tag == "kupari") hajotusAjastin.Interval = 1 * kerroin;
588                    if (g.Tag == "hopea") hajotusAjastin.Interval = 1.5 * kerroin;
589                    if (g.Tag == "vahankultaa") hajotusAjastin.Interval = 2 * kerroin;
590                    if (g.Tag == "paljonkultaa") hajotusAjastin.Interval = 3 * kerroin;
591
592                    hajotusAjastin.Timeout += delegate
593                    {
594
595                        if (!g.IsInsideRect(Mouse.PositionOnWorld)) return;
596
597
598
599
600
601                        if (g.Tag == "kupari")
602                        {
603                            MessageDisplay.Add("Kupari +2 rahaa");
604                            rahalaskuri.Value += 2;
605                        }
606                        if (g.Tag == "hopea")
607                        {
608                            MessageDisplay.Add("Hopea +5 rahaa");
609                            rahalaskuri.Value += 5;
610                        }
611                        if (g.Tag == "vahankultaa")
612                        {
613                            MessageDisplay.Add("Vähän kultaa +10 rahaa");
614                            rahalaskuri.Value += 10;
615                        }
616                        if (g.Tag == "paljonkultaa")
617                        {
618                            MessageDisplay.Add("Paljon kultaa +25 rahaa");
619                            rahalaskuri.Value += 25;
620                        }
621                        pisteet = rahalaskuri.Value;
622                        g.Destroy();
623                    };
624                    hajotusAjastin.Start(1);
625
626                }
627            }
628        }
629        else
630        {
631            MessageDisplay.Add("Käytä työkalua");
632        }
633
634    }
635
636    void Vaihdaesine()
637    {
638        //if (esinelaskuri == 0)
639        //{
640        //    inventory.esineet[esinelaskuri].Image = inventorylapiokuva;
641        //}
642        //else
643        //{
644        //    inventory.esineet[esinelaskuri].Image = tyhjaruutukuva;
645        //}
646
647        esinelaskuri = esinelaskuri + Mouse.WheelChange;
648        if (esinelaskuri < 0) esinelaskuri = 2;
649        if (esinelaskuri > 2) esinelaskuri = 0;
650
651        inventory2.esineet[0].Image = tyhjakuva;
652        inventory2.esineet[1].Image = tyhjakuva;
653        inventory2.esineet[2].Image = tyhjakuva;
654
655        inventory2.esineet[esinelaskuri].Image = tyhjavalittukuva;
656
657        //if (esinelaskuri == 0)
658        //{
659        //    inventory.esineet[esinelaskuri].Image = inventoryvalittulapiokuva;
660        //}
661        //else
662        //{
663        //    inventory.esineet[esinelaskuri].Image = valitturuutukuva;
664        //}
665
666    }
667
668    void Nollaa()
669    {
670        if (rahalaskuri.Value >= 150)
671        {
672            ClearAll();
673            AloitaPeli();
674            rahalaskuri.Value -= 150;
675            IsPaused = false;
676        }
677
678        else
679        {
680
681            MessageDisplay.Add("liian vähän rahaa");
682            IsPaused = false;
683
684        }
685    }
686    void Liikuta(PlatformCharacter hahmo, double nopeus)
687    {
688        hahmo.Walk(nopeus);
689    }
690
691    void Hyppaa(PlatformCharacter hahmo, double nopeus)
692    {
693        hahmo.Jump(nopeus);
694    }
695
696    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
697    {
698        maaliAani.Play();
699        MessageDisplay.Add("Keräsit tähden!");
700        tahti.Destroy();
701    }
702}
703
704
705
706
707
708/// Esinevalikko.
709class Inventory : Widget
710{
711    /// Tapahtuma, kun esine on valittu.
712    public event Action<PhysicsObject> ItemSelected;
713    public List<PushButton> esineet = new List<PushButton>();
714
715    /// Luo uuden esinevalikon.
716    public Inventory()
717        : base(new HorizontalLayout())
718    {
719    }
720
721
722    /// Lisää esineen.
723    /// <param name="item">Lisättävä esine.</param>
724    /// <param name="kuva">Esineen ikoni, joka näkyy valikossa.</param>
725    public void AddItem(PhysicsObject item, Image kuva)
726    {
727        PushButton icon = new PushButton(kuva);
728        esineet.Add(icon);
729        Add(icon);
730        icon.Clicked += delegate () { SelectItem(item); };
731    }
732
733    void SelectItem(PhysicsObject item)
734    {
735        if (ItemSelected != null)
736        {
737            ItemSelected(item);
738        }
739    }
740}
Note: See TracBrowser for help on using the repository browser.