source: 2011/23/mianaure/Oma peli parempi.cs @ 1905

Revision 1905, 29.5 KB checked in by anlakane, 12 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
9
10//Miro Aurela: GravityGame
11
12public class Peli : PhysicsGame
13{
14
15    const double nopeus = 200;
16    const double hyppyNopeus = 1000;
17    const int RUUDUN_KOKO = 40;
18
19    Timer aikaLaskuri;
20
21    PhysicsObject pelaaja1;
22
23    PhysicsObject piikkia;
24    PhysicsObject piikkiy;
25
26    Image pelaajanKuva = LoadImage("norsu");
27
28    Image tahtiKuva = LoadImage("tahti");
29
30    int tahtienmaara = 0;
31    int mpainovoima = 4;
32    int mmakspainovoima = 4;
33    int tasonro = 1;
34    int makstahdet = 3;
35    bool tarkistus = true;
36    double aika = 30;
37    double pisteet = 0;
38
39    SoundEffect maaliAani = LoadSoundEffect("maali");
40
41    ScoreList topLista = new ScoreList(10, false, 0);
42
43    DoubleMeter alaspainLaskuri;
44
45    List<Label> valikonKohdat;
46    Label painovm;
47    Label tahdet;
48    Label pisteetteksti;
49    Label aikaNaytto;
50
51
52    public override void Begin()
53    {
54        Mouse.IsCursorVisible = true;
55        if (DataStorage.Exists("pisteet.xml"))
56            topLista = DataStorage.Load<ScoreList>(topLista, "pisteet.xml");
57        if (aikaLaskuri != null) aikaLaskuri.Stop();
58        ClearAll();
59        Valikko();
60    }
61
62    void Valikko()
63    {
64        ClearAll();
65
66        valikonKohdat = new List<Label>();
67
68        Label kohta1 = new Label("Aloita uusi peli");
69        kohta1.Position = new Vector(0, 40);
70        valikonKohdat.Add(kohta1);
71
72        Label kohta3 = new Label("Ennätyslista");
73        kohta3.Position = new Vector(0, -40);
74        valikonKohdat.Add(kohta3);
75
76        Label kohta4 = new Label("Ohjeet");
77        kohta4.Position = new Vector(0, 0);
78        valikonKohdat.Add(kohta4);
79
80        Label kohta2 = new Label("Poistu");
81        kohta2.Position = new Vector(0, -80);
82        valikonKohdat.Add(kohta2);
83
84        foreach (Label valikonKohta in valikonKohdat)
85        {
86            Add(valikonKohta);
87        }
88
89        Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, AloitaPeli, null);
90        Mouse.ListenOn(kohta2, MouseButton.Left, ButtonState.Pressed, Lopeta, null);
91        Mouse.ListenOn(kohta3, MouseButton.Left, ButtonState.Pressed, lista, null);
92        Mouse.ListenOn(kohta4, MouseButton.Left, ButtonState.Pressed, ohjeet, null);
93
94        Mouse.IsCursorVisible = true;
95        Mouse.ListenMovement(1.0, ValikossaLiikkuminen, null);
96        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Lopeta, "");
97    }
98
99    void ValikossaLiikkuminen(AnalogState hiirenTila)
100    {
101        foreach (Label kohta in valikonKohdat)
102        {
103            if (Mouse.IsCursorOn(kohta))
104            {
105                kohta.TextColor = Color.Green;
106            }
107            else
108            {
109                kohta.TextColor = Color.Black;
110            }
111
112        }
113
114
115    }
116
117    void lista()
118    {
119        ClearAll();
120
121        valikonKohdat = new List<Label>();
122
123        Label kohta1 = new Label("Näytä ennätyslista");
124        kohta1.Position = new Vector(0, 40);
125        valikonKohdat.Add(kohta1);
126
127        Label kohta3 = new Label("Poistu");
128        kohta3.Position = new Vector(0, -40);
129        valikonKohdat.Add(kohta3);
130
131        Label kohta2 = new Label("Tyhjennä ennätyslista");
132        kohta2.Position = new Vector(0, 0);
133        valikonKohdat.Add(kohta2);
134
135
136        foreach (Label valikonKohta in valikonKohdat)
137        {
138            Add(valikonKohta);
139        }
140
141        Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, naytalista, null);
142        Mouse.ListenOn(kohta2, MouseButton.Left, ButtonState.Pressed, poistalista, null);
143        Mouse.ListenOn(kohta3, MouseButton.Left, ButtonState.Pressed, Begin, null);
144
145        Mouse.IsCursorVisible = true;
146        Mouse.ListenMovement(1.0, ValikossaLiikkuminen, null);
147        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Lopeta, "");
148    }
149    void naytalista()
150    {
151        HighScoreWindow topIkkuna = new HighScoreWindow("GravityGame",
152                              "Parhaat pisteet",
153                              topLista);
154        topIkkuna.Closed += TallennaPisteet;
155        Add(topIkkuna);
156    }
157
158    void poistalista()
159    {
160
161        DataStorage.Delete("Data/pisteet.xml");
162    }
163
164    void ohjeet()
165    {
166
167    }
168
169
170    void AloitaPeli()
171    {
172        ClearAll();
173        alku();
174
175    }
176
177    void Lopeta()
178    {
179        Exit();
180    }
181
182    //-----------------------------------------------------------------------------------------------------------------------------------------
183    //-----------------------------------------------------------------------------------------------------------------------------------------
184    //-----------------------------------------------------------------------------------------------------------------------------------------
185    //-----------------------------------------------------------------------------------------------------------------------------------------
186    //-----------------------------------------------------------------------------------------------------------------------------------------
187    //-----------------------------------------------------------------------------------------------------------------------------------------
188
189    void alku()
190    {
191        {
192            ClearAll();
193            Mouse.IsCursorVisible = false;
194            tahtienmaara = 0;
195            mpainovoima = 4;
196            mmakspainovoima = 4;
197            tasonro = 1;
198            aika = 30;
199            pisteet = 0;
200            makstahdet = 3;
201            tarkistus = true;
202            luoTekstit();
203            MessageDisplay.Add("Olet kerännyt " + tahtienmaara + " / 3 tähteä");
204            MessageDisplay.Add("Painovoiman muutoksia jäljellä " + mpainovoima);
205            Gravity = new Vector(0, -1000);
206            minne = "alas";
207            luoKentta();
208            lisaaNappaimet();
209            Camera.Follow(pelaaja1);
210            //Camera.ZoomFactor = 1.2;
211            Camera.StayInLevel = true;
212
213            alaspainLaskuri = new DoubleMeter(aika);
214
215            aikaLaskuri = new Timer();
216            aikaLaskuri.Interval = 0.1;
217            aikaLaskuri.Trigger += LaskeAlaspain;
218            aikaLaskuri.Start();
219
220            aikaNaytto = new Label();
221            aikaNaytto.TextColor = Color.Black;
222            aikaNaytto.DecimalPlaces = 1;
223            aikaNaytto.BindTo(alaspainLaskuri);
224            Add(aikaNaytto);
225        }
226    }
227
228
229    void uusialku()
230    {
231        ClearAll();
232        tahtienmaara = 0;
233        mpainovoima = 4;
234        makstahdet = 3;
235        luoTekstit();
236        //Label tahdet = new Label("Olet kerännyt " + tahtienmaara + " / " + makstahdet);
237        //tahdet.TextColor = Color.Black;
238        //tahdet.X = 100;
239        //tahdet.Y = 120;
240        //Add(tahdet);
241
242        //Label painovm = new Label("Sinulla on " + mpainovoima + " painovoiman muutosta jäljellä");
243        //painovm.TextColor = Color.Black;
244        //painovm.X = 100;
245        //painovm.Y = 100;
246        //Add(painovm);
247
248        MessageDisplay.Add("Olet kerännyt " + tahtienmaara + " / 3 tähteä");
249        MessageDisplay.Add("Painovoiman muutoksia jäljellä " + mpainovoima);
250        Gravity = new Vector(0, -1000);
251        minne = "alas";
252        luoKentta();
253        lisaaNappaimet();
254        Camera.Follow(pelaaja1);
255        //Camera.ZoomFactor = 1.2;
256        Camera.StayInLevel = true;
257
258        Label aikaNaytto = new Label();
259        aikaNaytto.TextColor = Color.Black;
260        aikaNaytto.DecimalPlaces = 1;
261        aikaNaytto.BindTo(alaspainLaskuri);
262        Add(aikaNaytto);
263    }
264
265    void luoTekstit()
266    {
267        tahdet = new Label("Kerätyt tähdet:   " + tahtienmaara + " / " + makstahdet);
268        tahdet.TextColor = Color.Black;
269        tahdet.X = 0;
270        tahdet.Y = 120;
271        Add(tahdet);
272        painovm = new Label("Painovoiman muutoksia jäljellä:   " + mpainovoima);
273        painovm.TextColor = Color.Black;
274        painovm.X = 0;
275        painovm.Y = 140;
276        Add(painovm);
277        pisteetteksti = new Label("Pisteet:   " + pisteet);
278        pisteetteksti.TextColor = Color.Black;
279        pisteetteksti.X = 0;
280        pisteetteksti.Y = 160;
281        Add(pisteetteksti);
282
283    }
284
285    void LaskeAlaspain(Timer timer)
286    {
287        if (alaspainLaskuri.Value < 20) aikaNaytto.TextColor = Color.Red; 
288        else aikaNaytto.TextColor = Color.Black;
289
290
291        if (alaspainLaskuri.Value > 0)
292        {
293            alaspainLaskuri.Value -= 0.1;
294        }
295
296        else
297        {
298            timer.Stop();
299            alaspainLaskuri.Value = 0;
300            MessageDisplay.Add("Aika loppui...");
301            aikaLoppui();
302        }
303    }
304
305    void aikaLoppui()
306    {
307        Mouse.IsCursorVisible = true;
308        alaspainLaskuri.Value = 0;
309        ClearControls();
310        Label Havisit = new Label("Aika loppui!");
311        Havisit.TextColor = Color.Red;
312        Havisit.X = 0;
313        Havisit.Y = 80;
314        Add(Havisit);
315        Label Havisit2 = new Label("Hävisit pelin!");
316        Havisit2.TextColor = Color.Red;
317        Havisit2.X = 0;
318        Havisit2.Y = 40;
319        Add(Havisit2);
320        Timer.SingleShot(3.5, aikaLoppui2);
321    }
322    void aikaLoppui2()
323    {
324        alaspainLaskuri.Value = 0;
325        HighScoreWindow topIkkuna = new HighScoreWindow("GravityGame",
326                             "Parhaat pisteet",
327                             "Onneksi olkoon, pääsit listalle pisteillä %p! Syötä nimesi:",
328                             topLista, pisteet);
329        topIkkuna.Closed += TallennaPisteet;
330        Add(topIkkuna);
331
332    }
333    void TallennaPisteet(Window sender)
334    {
335        DataStorage.Save<ScoreList>(topLista, "pisteet.xml");
336        ClearAll();
337        Begin();
338    }
339
340
341    void luoKentta()
342    {
343        TileMap kentta = TileMap.FromFile("kentta1.txt");
344        kentta['#'] = lisaaTaso;
345        kentta['*'] = lisaaTahti;
346        kentta['N'] = lisaaPelaaja;
347        kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO);
348        //Level.CreateBorders();
349        Level.Background.CreateGradient(Color.White, Color.LightGray);
350        AddCollisionHandler(pelaaja1, KäsittelePelaajanTörmäys);
351    }
352
353    PhysicsObject lisaaTaso()
354    {
355        PhysicsObject taso = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO);
356        taso.Color = Color.DarkGray;
357        return taso;
358    }
359
360    PhysicsObject lisaaTahti()
361    {
362        PhysicsObject tahti = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO);
363        tahti.Image = tahtiKuva;
364        tahti.Tag = "tahti";
365        return tahti;
366    }
367
368    PhysicsObject lisaaPelaaja()
369    {
370        pelaaja1 = new PhysicsObject(40, 40, Shape.Circle);
371        pelaaja1.Mass = 4.0;
372        pelaaja1.Image = pelaajanKuva;
373        pelaaja1.Restitution = 0.5;
374        pelaaja1.CanRotate = false;
375        return pelaaja1;
376    }
377   
378    PhysicsObject lisaaPiikkiy()
379    {
380        PhysicsObject piikkiy = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO);
381        piikkiy.Shape = Shape.Triangle;
382        piikkiy.Color = Color.Wheat;
383        piikkiy.CanRotate = false;
384        piikkiy.Tag = "piikkiy";
385        return piikkiy;
386    }
387
388    PhysicsObject lisaaPiikkia()
389    {
390        PhysicsObject piikkia = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO);
391        piikkia.Shape = Shape.Triangle;
392        piikkia.CanRotate = false;
393        piikkia.Color = Color.Wheat;
394        piikkia.Angle = Angle.FromDegrees(180);
395        piikkia.Tag = "piikkia";
396        return piikkia;
397    }
398
399
400    void lisaaNappaimet()
401    {
402
403        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Begin, "Poistu pelistä");
404        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
405        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
406        Keyboard.Listen(Key.Space, ButtonState.Pressed, MuutaPainovoima, "Painovoiman muutos");
407        Keyboard.Listen(Key.Enter, ButtonState.Pressed, ulosruudusta, "Aloita taso alusta");
408        Keyboard.Listen(Key.F2, ButtonState.Pressed, voitto, "Aloita taso alusta");
409
410        //ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
411        //ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
412        //ControllerOne.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
413        //ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
414    }
415
416    void liikuta(PhysicsObject hahmo, double nopeus)
417    {
418        //hahmo.Walk(nopeus);
419
420        if (hahmo.Velocity.Magnitude < 200)
421        {
422            hahmo.Hit(new Vector(nopeus, 0));
423        }
424
425    }
426
427    void ulosruudusta()
428    {
429
430        if (alaspainLaskuri.Value > 0)
431        {
432            // if (alaspainLaskuri.Value < 20) aikaNaytto.TextColor = Color.Red;
433            pisteet = pisteet - (tahtienmaara * 10);
434            alaspainLaskuri.Value = Math.Max(0, alaspainLaskuri.Value - 20);
435            if (tasonro == 1) uusialku();
436            if (tasonro == 2) taso2();
437            if (tasonro == 3) taso3();
438            if (tasonro == 4) taso4();
439            if (tasonro == 5) taso5();
440            if (tasonro == 6) taso6();
441            if (tasonro == 7) taso7();
442            if (tasonro == 8) taso8();
443            if (tasonro == 9) taso9();
444        }
445        else if (alaspainLaskuri.Value <= 0)
446        {
447            if (tarkistus == true)
448            {
449                pisteet = pisteet - (tahtienmaara * 10);
450                tarkistus = false;
451            }
452            aikaLaskuri.Stop();
453            alaspainLaskuri.Value = 0;
454            aikaLoppui();
455        }
456    }
457
458    private void LaskeAlaspain()
459    {
460        throw new NotImplementedException();
461    }
462
463    void KäsittelePelaajanTörmäys(PhysicsObject hahmo, PhysicsObject kohde)
464    {
465        if (kohde.Tag.ToString() == "tahti")
466        {
467            maaliAani.Play();
468            tahtienmaara++;
469            pisteet += 10;
470            tahdet.Text = "Tähtien määrä:   " + tahtienmaara + " / " + makstahdet;
471            pisteetteksti.Text = ("Pisteet:    " + pisteet);
472            if (makstahdet == 3) alaspainLaskuri.Value +=10;
473            else alaspainLaskuri.Value += 6.67;
474            kohde.Destroy();
475           
476            if (tahtienmaara == makstahdet)
477            {
478                MessageDisplay.Add("Selvisit tason!!! ");
479                //aika = alaspainLaskuri.Value
480                if (makstahdet == 3) alaspainLaskuri.Value += 11.5;
481                else alaspainLaskuri.Value += 8.15;
482               
483                if (0 == mpainovoima) pisteet += 10;
484                else if (1 == mpainovoima) pisteet += 40;
485                else if (2 == mpainovoima) pisteet += 50;
486                else if (2 > mpainovoima) pisteet += 100;
487
488               
489
490                if (tasonro == 1)
491                {
492                    Timer.SingleShot(1.5, taso2);
493                }
494                if (tasonro == 2)
495                {
496                    Timer.SingleShot(1.5, taso3);
497                }
498                if (tasonro == 3)
499                {
500                    Timer.SingleShot(1.5, taso4);
501                }
502                if (tasonro == 4)
503                {
504                    Timer.SingleShot(1.5, taso5);
505                }
506                if (tasonro == 5)
507                {
508                    Timer.SingleShot(1.5, taso6);
509                }
510                if (tasonro == 6)
511                {
512                    Timer.SingleShot(1.5, taso7);
513                }
514                if (tasonro == 7)
515                {
516                    Timer.SingleShot(1.5, taso8);
517                }
518                if (tasonro == 8)
519                {
520                    Timer.SingleShot(1.5, taso9);
521                }
522                if (tasonro == 9)
523                {
524                    Timer.SingleShot(1.5, taso10);
525                }
526                if (tasonro == 10)
527                {
528                    Timer.SingleShot(1.5, voitto);
529                }
530
531
532                tasonro++;
533            }
534        }
535
536
537        if (kohde.Tag.ToString() == "piikkiy")
538        {
539            /*pisteet = pisteet - (tahtienmaara * 10);
540            alaspainLaskuri.Value = Math.Max(0, alaspainLaskuri.Value - 20);
541
542            if (alaspainLaskuri.Value > 0)
543            {
544
545                if (tasonro == 1) uusialku();
546                if (tasonro == 2) taso2();
547                if (tasonro == 3) taso3();
548                if (tasonro == 4) taso4();
549                if (tasonro == 5) taso5();
550                if (tasonro == 6) taso6();
551                if (tasonro == 7) taso7();
552                if (tasonro == 8) taso8();
553                alaspainLaskuri.Value -= 20;
554            }*/
555            ulosruudusta();
556        }
557        if (kohde.Tag.ToString() == "piikkia")
558        {
559            /*pisteet = pisteet - (tahtienmaara * 10);
560            alaspainLaskuri.Value = Math.Max(0, alaspainLaskuri.Value - 20);
561                if (alaspainLaskuri.Value > 0)
562                {
563
564                    if (tasonro == 1) uusialku();
565                    if (tasonro == 2) taso2();
566                    if (tasonro == 3) taso3();
567                    if (tasonro == 4) taso4();
568                    if (tasonro == 5) taso5();
569                    if (tasonro == 6) taso6();
570                    if (tasonro == 7) taso7();
571                    if (tasonro == 8) taso8();
572                    alaspainLaskuri.Value -= 20;
573                }*/
574            ulosruudusta();
575        }
576    }
577
578
579
580
581
582
583    void voitto()
584    {
585        Mouse.IsCursorVisible = true;
586        ClearControls();
587        aikaLaskuri.Stop();
588        Label Voitit = new Label("Selvitit kaikki tasot!");
589        Voitit.TextColor = Color.Green;
590        Voitit.X = 0;
591        Voitit.Y = 80;
592        Add(Voitit);
593        Label Voitit2 = new Label("Voitit pelin!");
594        Voitit2.TextColor = Color.Green;
595        Voitit2.X = 0;
596        Voitit2.Y = 40;
597        Add(Voitit2);
598        Timer.SingleShot(3.5, voitto2);
599    }
600
601    void voitto2()
602    {
603        {
604            pisteet = pisteet + alaspainLaskuri.Value * 10;
605            HighScoreWindow topIkkuna = new HighScoreWindow("GravityGame",
606                                 "Parhaat pisteet",
607                                 "Onneksi olkoon, pääsit listalle pisteillä %p! Syötä nimesi:",
608                                 topLista, pisteet);
609            topIkkuna.Closed += TallennaPisteet;
610            Add(topIkkuna);
611
612        }
613    }
614
615
616    void MuutaPainovoima()
617    {
618        if (mpainovoima > 0)
619        {
620            mpainovoima--;
621            painovm.Text = "Painovoiman muutoksia jäljellä:   " + mpainovoima;
622            Gravity = new Vector(Gravity.X, -Gravity.Y);
623            pelaaja1.Image = Image.Flip(pelaaja1.Image);
624        }
625    }
626
627
628
629
630
631    void taso2()
632    {
633
634        ClearAll();
635        MessageDisplay.TextColor = Color.Black;
636        tahtienmaara = 0;
637        mpainovoima = 4;
638        mmakspainovoima = 4;
639        TileMap kentta = TileMap.FromFile("kentta2.txt");
640        kentta['#'] = lisaaTaso;
641        kentta['*'] = lisaaTahti;
642        kentta['N'] = lisaaPelaaja;
643        kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO);
644        //Level.CreateBorders();
645        Level.Background.CreateGradient(Color.White, Color.LightGray);
646        luoTekstit();
647        MessageDisplay.Add("Olet kerännyt " + tahtienmaara + " / 3 tähteä");
648        MessageDisplay.Add("Painovoiman muutoksia jäljellä " + mpainovoima);
649        Gravity = new Vector(0, -1000);
650        minne = "alas";
651        lisaaNappaimet();
652        AddCollisionHandler(pelaaja1, KäsittelePelaajanTörmäys);
653        Camera.Follow(pelaaja1);
654        //Camera.ZoomFactor = 1.2;
655        Camera.StayInLevel = true;
656
657        Label aikaNaytto = new Label();
658        aikaNaytto.TextColor = Color.Black;
659        aikaNaytto.DecimalPlaces = 1;
660        aikaNaytto.BindTo(alaspainLaskuri);
661        Add(aikaNaytto);
662
663
664
665
666    }
667
668
669    void taso3()
670    {
671
672        ClearAll();
673
674        tahtienmaara = 0;
675        mpainovoima = 6;
676        mmakspainovoima = 6;
677        TileMap kentta = TileMap.FromFile("kentta3.txt");
678        kentta['#'] = lisaaTaso;
679        kentta['*'] = lisaaTahti;
680        kentta['N'] = lisaaPelaaja;
681        kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO);
682        //Level.CreateBorders();
683        Level.Background.CreateGradient(Color.White, Color.LightGray);
684        luoTekstit();
685
686        MessageDisplay.Add("Olet kerännyt " + tahtienmaara + " / 3 tähteä");
687        MessageDisplay.Add("Painovoiman muutoksia jäljellä " + mpainovoima);
688        lisaaNappaimet();
689        AddCollisionHandler(pelaaja1, KäsittelePelaajanTörmäys);
690        Camera.Follow(pelaaja1);
691        //Camera.ZoomFactor = 1.2;
692        Camera.StayInLevel = true;
693        Gravity = new Vector(0, -1000);
694        minne = "alas";
695        Label aikaNaytto = new Label();
696        aikaNaytto.TextColor = Color.Black;
697        aikaNaytto.DecimalPlaces = 1;
698        aikaNaytto.BindTo(alaspainLaskuri);
699        Add(aikaNaytto);
700
701    }
702
703    void taso4()
704    {
705
706        ClearAll();
707
708        tahtienmaara = 0;
709        mpainovoima = 6;
710        mmakspainovoima = 6;
711        TileMap kentta = TileMap.FromFile("kentta4.txt");
712        kentta['#'] = lisaaTaso;
713        kentta['*'] = lisaaTahti;
714        kentta['N'] = lisaaPelaaja;
715        kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO);
716        //Level.CreateBorders();
717        Level.Background.CreateGradient(Color.White, Color.LightGray);
718        luoTekstit();
719
720        MessageDisplay.Add("Olet kerännyt " + tahtienmaara + " / 3 tähteä");
721        MessageDisplay.Add("Painovoiman muutoksia jäljellä " + mpainovoima);
722        lisaaNappaimet();
723        AddCollisionHandler(pelaaja1, KäsittelePelaajanTörmäys);
724        Camera.Follow(pelaaja1);
725        //Camera.ZoomFactor = 1.2;
726        Camera.StayInLevel = true;
727        Gravity = new Vector(0, -1000);
728        minne = "alas";
729        Label aikaNaytto = new Label();
730        aikaNaytto.TextColor = Color.Black;
731        aikaNaytto.DecimalPlaces = 1;
732        aikaNaytto.BindTo(alaspainLaskuri);
733        Add(aikaNaytto);
734
735    }
736
737    void taso5()
738    {
739
740        ClearAll();
741
742        tahtienmaara = 0;
743        mpainovoima = 6;
744        mmakspainovoima = 6;
745        TileMap kentta = TileMap.FromFile("kentta5.txt");
746        kentta['#'] = lisaaTaso;
747        kentta['*'] = lisaaTahti;
748        kentta['N'] = lisaaPelaaja;
749        kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO);
750        //Level.CreateBorders();
751        Level.Background.CreateGradient(Color.White, Color.LightGray);
752        luoTekstit();
753
754        MessageDisplay.Add("Olet kerännyt " + tahtienmaara + " / 3 tähteä");
755        MessageDisplay.Add("Painovoiman muutoksia jäljellä " + mpainovoima);
756        lisaaNappaimet();
757        AddCollisionHandler(pelaaja1, KäsittelePelaajanTörmäys);
758        Camera.Follow(pelaaja1);
759        //Camera.ZoomFactor = 1.2;
760        Camera.StayInLevel = true;
761        Gravity = new Vector(0, -1000);
762        minne = "alas";
763        Label aikaNaytto = new Label();
764        aikaNaytto.TextColor = Color.Black;
765        aikaNaytto.DecimalPlaces = 1;
766        aikaNaytto.BindTo(alaspainLaskuri);
767        Add(aikaNaytto);
768
769    }
770    void taso6()
771    {
772
773        ClearAll();
774
775        tahtienmaara = 0;
776        mpainovoima =6;
777        mmakspainovoima = 6;
778        makstahdet = 5;
779        TileMap kentta = TileMap.FromFile("kentta6.txt");
780        kentta['#'] = lisaaTaso;
781        kentta['*'] = lisaaTahti;
782        kentta['N'] = lisaaPelaaja;
783        kentta['A'] = lisaaPiikkiy;
784        kentta['V'] = lisaaPiikkia;
785        kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO);
786        //Level.CreateBorders();
787        Level.Background.CreateGradient(Color.White, Color.LightGray);
788        luoTekstit();
789
790        lisaaNappaimet();
791        //AddCollisionHandler(pelaaja1, osuPiikkiy);
792        //AddCollisionHandler(pelaaja1, osuPiikkia);
793        AddCollisionHandler(pelaaja1, KäsittelePelaajanTörmäys);
794        Camera.Follow(pelaaja1);
795        //Camera.ZoomFactor = 1.;
796        Camera.StayInLevel = true;
797        Gravity = new Vector(0, -1000);
798        //minne = "alas";
799        Label aikaNaytto = new Label();
800        aikaNaytto.TextColor = Color.Black;
801        aikaNaytto.DecimalPlaces = 1;
802        aikaNaytto.BindTo(alaspainLaskuri);
803        Add(aikaNaytto);
804
805    }
806
807    void taso7()
808    {
809
810        ClearAll();
811
812        tahtienmaara = 0;
813        mpainovoima = 10;
814        makstahdet = 5;
815        TileMap kentta = TileMap.FromFile("kentta10.txt");
816        kentta['#'] = lisaaTaso;
817        kentta['*'] = lisaaTahti;
818        kentta['N'] = lisaaPelaaja;
819        kentta['A'] = lisaaPiikkiy;
820        kentta['V'] = lisaaPiikkia;
821        kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO);
822        //Level.CreateBorders();
823        Level.Background.CreateGradient(Color.White, Color.LightGray);
824        luoTekstit();
825
826        lisaaNappaimet();
827        //AddCollisionHandler(pelaaja1, osuPiikkiy);
828        //AddCollisionHandler(pelaaja1, osuPiikkia);
829        AddCollisionHandler(pelaaja1, KäsittelePelaajanTörmäys);
830        Camera.Follow(pelaaja1);
831        //Camera.ZoomFactor = 1.44;
832        Camera.StayInLevel = true;
833        Gravity = new Vector(0, -1000);
834        //minne = "alas";
835        Label aikaNaytto = new Label();
836        aikaNaytto.TextColor = Color.Black;
837        aikaNaytto.DecimalPlaces = 1;
838        aikaNaytto.BindTo(alaspainLaskuri);
839        Add(aikaNaytto);
840
841    }
842
843    void taso8()
844    {
845
846        ClearAll();
847
848        tahtienmaara = 0;
849        mpainovoima = 10;
850        makstahdet = 5;
851        TileMap kentta = TileMap.FromFile("kentta8.txt");
852        kentta['#'] = lisaaTaso;
853        kentta['*'] = lisaaTahti;
854        kentta['N'] = lisaaPelaaja;
855        kentta['A'] = lisaaPiikkiy;
856        kentta['V'] = lisaaPiikkia;
857        kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO);
858        //Level.CreateBorders();
859        Level.Background.CreateGradient(Color.White, Color.LightGray);
860        luoTekstit();
861
862        lisaaNappaimet();
863        //AddCollisionHandler(pelaaja1, osuPiikkiy);
864        //AddCollisionHandler(pelaaja1, osuPiikkia);
865        AddCollisionHandler(pelaaja1, KäsittelePelaajanTörmäys);
866        Camera.Follow(pelaaja1);
867        //Camera.ZoomFactor = 1.44;
868        Camera.StayInLevel = true;
869        Gravity = new Vector(0, -1000);
870        //minne = "alas";
871        Label aikaNaytto = new Label();
872        aikaNaytto.TextColor = Color.Black;
873        aikaNaytto.DecimalPlaces = 1;
874        aikaNaytto.BindTo(alaspainLaskuri);
875        Add(aikaNaytto);
876
877    }
878    void taso9()
879    {
880
881        ClearAll();
882
883        tahtienmaara = 0;
884        mpainovoima = 15;
885        makstahdet = 5;
886        TileMap kentta = TileMap.FromFile("kentta7.txt");
887        kentta['#'] = lisaaTaso;
888        kentta['*'] = lisaaTahti;
889        kentta['N'] = lisaaPelaaja;
890        kentta['A'] = lisaaPiikkiy;
891        kentta['V'] = lisaaPiikkia;
892        kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO);
893        //Level.CreateBorders();
894        Level.Background.CreateGradient(Color.White, Color.LightGray);
895        luoTekstit();
896
897        lisaaNappaimet();
898        //AddCollisionHandler(pelaaja1, osuPiikkiy);
899        //AddCollisionHandler(pelaaja1, osuPiikkia);
900        AddCollisionHandler(pelaaja1, KäsittelePelaajanTörmäys);
901        Camera.Follow(pelaaja1);
902        //Camera.ZoomFactor = 1.44;
903        Camera.StayInLevel = true;
904        Gravity = new Vector(0, -1000);
905        //minne = "alas";
906        Label aikaNaytto = new Label();
907        aikaNaytto.TextColor = Color.Black;
908        aikaNaytto.DecimalPlaces = 1;
909        aikaNaytto.BindTo(alaspainLaskuri);
910        Add(aikaNaytto);
911
912    }
913    void taso10()
914    {
915
916        ClearAll();
917
918        tahtienmaara = 0;
919        mpainovoima = 10;
920        makstahdet = 5;
921        TileMap kentta = TileMap.FromFile("kentta9.txt");
922        kentta['#'] = lisaaTaso;
923        kentta['*'] = lisaaTahti;
924        kentta['N'] = lisaaPelaaja;
925        kentta['A'] = lisaaPiikkiy;
926        kentta['V'] = lisaaPiikkia;
927        kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO);
928        //Level.CreateBorders();
929        Level.Background.CreateGradient(Color.White, Color.LightGray);
930        luoTekstit();
931
932        lisaaNappaimet();
933        //AddCollisionHandler(pelaaja1, osuPiikkiy);
934        //AddCollisionHandler(pelaaja1, osuPiikkia);
935        AddCollisionHandler(pelaaja1, KäsittelePelaajanTörmäys);
936        Camera.Follow(pelaaja1);
937        //Camera.ZoomFactor = 1.44;
938        Camera.StayInLevel = true;
939        Gravity = new Vector(0, -1000);
940        //minne = "alas";
941        Label aikaNaytto = new Label();
942        aikaNaytto.TextColor = Color.Black;
943        aikaNaytto.DecimalPlaces = 1;
944        aikaNaytto.BindTo(alaspainLaskuri);
945        Add(aikaNaytto);
946
947    }
948    public string minne { get; set; }
949
950    public object taso { get; set; }
951
952    protected override void Update(Time time)
953    {
954        if (pelaaja1 != null)
955        {
956            if (pelaaja1.X < Level.Left || pelaaja1.X > Level.Right || pelaaja1.Y < Level.Bottom || pelaaja1.Y > Level.Top)
957            {
958                pelaaja1 = null;
959                ulosruudusta();
960            }
961
962
963            base.Update(time);
964        }
965    }
966
967    public int kenttanro { get; set; }
968}
969
970
971   
972
973
974
Note: See TracBrowser for help on using the repository browser.