source: 2011/24/HenrikS/MasaMajavanMaailma/MasaMajavanMaailma/MasaMajavanMaailma/Peli.cs @ 2036

Revision 2036, 6.0 KB checked in by hesasnel, 8 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 Peli : PhysicsGame
10{
11    const double nopeus = 400;
12    const double hyppyNopeus = 1000;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16
17    Image pelaajanKuvaOikea = LoadImage("Masaoikea");
18    Image tahtiKuva = LoadImage("tahti");
19    Image pelaajanKuvaVasen = LoadImage("Masavasen");
20    Image PelaajajuokseeOikea = LoadImage("Masajuoksuvasen");
21    Image PelaajajuokseeVasen = LoadImage("Masajuoksuoikea");
22    Image Pelaajalentaa = LoadImage("Masalentaa");
23    Image Jetpack = LoadImage("Jetpak");
24    Image Polttoaine = LoadImage("Euroshopper");
25    Image ruohikko = LoadImage("Maanpinta");
26    Image multa = LoadImage("Multa");
27
28    SoundEffect maaliAani = LoadSoundEffect("maali");
29
30    public override void Begin()
31    {
32        Gravity = new Vector(0, -1000);
33
34        luoKentta();
35        lisaaNappaimet();
36
37        Camera.Follow(pelaaja1);
38        Camera.ZoomFactor = 1.2;
39        Camera.StayInLevel = true;
40    }
41
42    void luoKentta()
43    {
44        TileMap kentta = TileMap.FromFile("kentta1.txt");
45        kentta['#'] = lisaaTaso;
46        kentta['*'] = lisaaTahti;
47        kentta['M'] = lisaaPelaaja;
48        kentta['O'] = lisaaMaankamara;
49        kentta['S'] = lisaaMaa;
50        kentta['J'] = lisaaJetpak;
51        kentta['E'] = lisaaES;
52        kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO);
53        Level.CreateBorders();
54        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
55    }
56
57    PhysicsObject lisaaTaso()
58    {
59        PhysicsObject taso = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO);
60        taso.Color = Color.Green;
61        return taso;
62    }
63
64    PhysicsObject lisaaTahti()
65    {
66        PhysicsObject tahti = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO);
67        tahti.Image = tahtiKuva;
68        tahti.Tag = "tahti";
69        return tahti;
70    }
71    PhysicsObject lisaaMaankamara()
72    {
73        PhysicsObject maankamara = PhysicsObject.CreateStaticObject(40, 40);
74        maankamara.Image = ruohikko;
75        return maankamara;
76
77
78
79    }
80    PhysicsObject lisaaMaa()
81    {
82        PhysicsObject maa = PhysicsObject.CreateStaticObject(40, 40);
83        maa.Image = multa;
84        return maa;
85    }
86
87    PhysicsObject lisaaJetpak()
88    {
89        PhysicsObject jetpak = PhysicsObject.CreateStaticObject(65, 90);
90        jetpak.Image = Jetpack;
91        jetpak.Tag = "jetpak";
92        return jetpak;
93    }
94
95    PhysicsObject lisaaES()
96    {
97        PhysicsObject ES = PhysicsObject.CreateStaticObject(40, 80);
98        ES.Image = Polttoaine;
99        ES.Tag = "ES";
100        return ES;
101    }
102    PlatformCharacter lisaaPelaaja()
103    {
104        pelaaja1 = new PlatformCharacter(75, 120);
105        Image[] pelaajanKavelykuvatOikea = LoadImages("Masaoikea", "Masajuoksuoikea");
106        Image[] pelaajanKavelykuvatVasen = LoadImages("Masavasen", "Masajuoksuvasen");
107        pelaaja1.RightWalkingAnimation = new Animation(pelaajanKavelykuvatOikea);
108        pelaaja1.RightWalkingAnimation.FPS = 10;
109        pelaaja1.RightWalkingAnimation.Start();
110        pelaaja1.LeftWalkingAnimation = new Animation(pelaajanKavelykuvatVasen);
111        pelaaja1.LeftWalkingAnimation.FPS = 10;
112        pelaaja1.LeftWalkingAnimation.Start();
113        pelaaja1.Mass = 4.0;
114        // pelaaja1.Image = pelaajanKuva;
115        AddCollisionHandler(pelaaja1, osuTahteen);
116        AddCollisionHandler(pelaaja1, osuJetpakiin);
117        AddCollisionHandler(pelaaja1, osuES);
118
119        return pelaaja1;
120    }
121
122    void lisaaNappaimet()
123    {
124        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
125        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
126
127        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
128        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
129        Keyboard.Listen(Key.Space, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
130
131        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
132
133        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
134        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
135        ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
136    }
137
138    void liikuta(PlatformCharacter hahmo, double nopeus)
139    {
140        hahmo.Walk(nopeus);
141    }
142
143    void hyppaa(PlatformCharacter hahmo, double nopeus)
144    {
145        hahmo.Jump(nopeus);
146    }
147
148    void osuTahteen(PhysicsObject hahmo, PhysicsObject kohde)
149    {
150        if (kohde.Tag.ToString() == "tahti")
151        {
152            maaliAani.Play();
153            MessageDisplay.Add("Keräsit tähden!");
154            kohde.Destroy();
155        }
156
157    }
158    void osuJetpakiin(PhysicsObject hahmo, PhysicsObject kohde)
159    {
160        if (kohde.Tag.ToString() == "jetpak")
161        {
162            Label label = new Label("Masa majava: Voi pojat! Sain Jetpakin! Nyt pystyn lentämään painamalla 'Ylös'.");
163            Label label2 = new Label("Masa majava: Siihen kuitenkin tarvitaan Euroshopper-energiajuomaa polttoaineeksi...");
164            Add(label);
165            Timer.SingleShot(4, delegate()
166            {
167                label.Destroy();
168                Add(label2);
169            }
170            );
171            Timer.SingleShot(8, label2.Destroy);
172
173
174
175            kohde.Destroy();
176        }
177    }
178    void osuES(PhysicsObject hahmo, PhysicsObject kohde)
179    {
180        if (kohde.Tag.ToString() == "ES")
181        {
182            MessageDisplay.Add("Masa majava: ES! Tekis mieli maistaa...mutta tarvitsen sitä polttoaineeksi.");
183            kohde.Destroy();
184        }
185    }
186}
Note: See TracBrowser for help on using the repository browser.