source: 2011/26/JimiL/Pelit/pelit22/world of Chuckland fix fix/world of Chuckland fix fix/Peli.cs @ 2391

Revision 2391, 9.0 KB checked in by saselamp, 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;
8
9public class Peli : PhysicsGame
10{
11    const double nopeus = 300;
12    const double hyppyNopeus = 1000;
13    //const double Inventory.X = Screen.LeftSafe + 1000;
14    //const double Inventory.Y = Screen.TopSafe - 400;
15   
16    const int RUUDUN_KOKO = 40;
17
18    PlatformCharacter pelaaja1;
19
20
21    PhysicsObject heppu;
22    Image paikallaanvasemmalle1 = LoadImage("heppuleft1");
23    Image paikallaanoikelle1 = LoadImage("heppu");
24
25    Image[] kavelyvasemmalle1 = LoadImages("heppuleft1", "heppuleft2", "heppuleft3");
26    Image[] kavelyoikelle1;
27
28    Image paikallaanvasemmalle = LoadImage("hahmo");
29    Image paikallaanoikelle = LoadImage("hahmo");
30
31    Image[] kavelyoikelle = LoadImages("hahmoright1", "hahmoright2");
32    Image[] kavelyvasemmalle;
33    Image pelaajanKuva = LoadImage("hahmo");
34
35
36    Image kultaKuva = LoadImage("kulta");
37    Image kiviKuva = LoadImage("kivi");
38    Image puuKuva = LoadImage("puu");
39    Image maaKuva = LoadImage("maa");
40    Image metalliKuva = LoadImage("metalli");
41    Image lehtiKuva = LoadImage("lehti");
42    Image vesiKuva = LoadImage("vesi");
43    Image pilvikuva = LoadImage("pilvi");
44    Image heppukuva = LoadImage("heppu");
45    Image ruohokuva = LoadImage("ruoho");
46    Image koivukuva = LoadImage("koivu");
47    Widget Inventory;
48
49    SoundEffect maaliAani = LoadSoundEffect("maali");
50
51    List<PhysicsObject> keratytTavarat = new List<PhysicsObject>();
52
53    public override void Begin()
54    {
55        paikallaanoikelle = Image.Mirror(paikallaanvasemmalle);
56        kavelyvasemmalle = Image.Mirror(kavelyoikelle);
57
58        paikallaanoikelle1 = Image.Mirror(paikallaanvasemmalle1);
59        kavelyoikelle1 = Image.Mirror(kavelyvasemmalle1);
60
61        Gravity = new Vector(0, -1000);
62
63        luoKentta();
64        lisaaNappaimet();
65
66        Camera.Follow(pelaaja1);
67        Camera.ZoomFactor = 1.2;
68        Camera.StayInLevel = true;
69    }
70
71    void luoKentta()
72    {
73        TileMap kentta = TileMap.FromFile("kentta1.txt");
74        kentta['#'] = lisaamaa;
75        kentta['*'] = lisaakulta;
76        kentta['N'] = lisaaPelaaja;
77        kentta['%'] = lisaakivi;
78        kentta['('] = lisaapuu;
79        kentta['/'] = lisaalehti;
80        kentta['^'] = lisaametalli;
81        kentta[';'] = lisaavesi;
82        kentta['B'] = lisaapilvi;
83        kentta['H'] = lisaaheppu;
84        kentta['='] = lisaaruoho;
85        kentta[')'] = lisaakoivu;
86        kentta['x'] = lisaaKerattava;
87
88        kentta.Insert(50, 50);
89        Level.CreateBorders();
90        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
91    }
92    RandomMoverBrain Satunnaisaivot = new RandomMoverBrain(12000);
93
94
95    PhysicsObject lisaaKerattava()
96    {
97        PhysicsObject kerattava = new PhysicsObject(20, 20);
98        kerattava.Tag = "kerattava1";
99        return kerattava;
100    }
101
102    PhysicsObject lisaakoivu()
103    {
104        PhysicsObject koivu = PhysicsObject.CreateStaticObject(50, 50);
105        koivu.Image = koivukuva;
106        koivu.Tag = "kerattava2";
107        return koivu;
108    }
109    PhysicsObject lisaaruoho()
110    {
111        PhysicsObject ruoho = PhysicsObject.CreateStaticObject(50, 50);
112        ruoho.Image = ruohokuva;
113        ruoho.Tag = "kerattava3";
114
115        Add(ruoho);
116        return ruoho;
117    }
118    PhysicsObject lisaapilvi()
119    {
120        PhysicsObject pilvi = PhysicsObject.CreateStaticObject(50, 50);
121        pilvi.Image = pilvikuva;
122        pilvi.Tag = "kerattava4";
123
124        Add(pilvi);
125        return pilvi;
126    }
127    PhysicsObject lisaametalli()
128    {
129        PhysicsObject metalli = PhysicsObject.CreateStaticObject(50, 50);
130        metalli.Image = metalliKuva;
131        metalli.Tag = "kerattava5";
132
133        Add(metalli);
134        return metalli;
135    }
136
137    PhysicsObject lisaavesi()
138    {
139        PhysicsObject vesi = PhysicsObject.CreateStaticObject(50, 50);
140        vesi.Image = vesiKuva;
141        vesi.Tag = "kerattava6";
142
143
144        Add(vesi, -1);
145        return vesi;
146    }
147
148    PhysicsObject lisaalehti()
149    {
150        PhysicsObject lehti = PhysicsObject.CreateStaticObject(50, 50);
151        lehti.Image = lehtiKuva;
152        lehti.Tag = "kerattava7";
153
154        Add(lehti);
155        return lehti;
156    }
157    PhysicsObject lisaapuu()
158    {
159        PhysicsObject puu = PhysicsObject.CreateStaticObject(50, 50);
160        puu.Image = puuKuva;
161        puu.Tag = "kerattava8";
162
163        Add(puu);
164        return puu;
165    }
166    PhysicsObject lisaakivi()
167    {
168        PhysicsObject kivi = PhysicsObject.CreateStaticObject(50, 50);
169        kivi.Image = kiviKuva;
170        kivi.Tag = "kerattava9";
171        Add(kivi);
172        return kivi;
173    }
174    PhysicsObject lisaamaa()
175    {
176        PhysicsObject maa = PhysicsObject.CreateStaticObject(50, 50);
177        maa.Image = maaKuva;
178        maa.Tag = "kerattava10";
179        Add(maa);
180
181        return maa;
182    }
183
184    PhysicsObject lisaakulta()
185    {
186        PhysicsObject kulta = PhysicsObject.CreateStaticObject(50, 50);
187        kulta.Image = kultaKuva;
188        kulta.Tag = "kerattava11";
189        Add(kulta);
190
191        return kulta;
192    }
193    PhysicsObject lisaaheppu()
194    {
195        PlatformCharacter heppu = new PlatformCharacter(50, 50);
196
197        heppu.Brain = Satunnaisaivot;
198        Satunnaisaivot.ChangeMovementSeconds = RandomGen.NextDouble(2.3, 5.5);
199        heppu.Tag = "heppu";
200        heppu.Image = heppukuva;
201        heppu.LeftIdleAnimation = new Animation(paikallaanvasemmalle1);
202        heppu.RightIdleAnimation = new Animation(paikallaanoikelle1);
203
204        heppu.LeftWalkingAnimation = new Animation(kavelyvasemmalle1);
205        heppu.RightWalkingAnimation = new Animation(kavelyoikelle1);
206        Add(heppu);
207        return heppu;
208    }
209    PlatformCharacter lisaaPelaaja()
210    {
211        pelaaja1 = new PlatformCharacter(50, 100);
212        pelaaja1.Mass = 4.0;
213        pelaaja1.Image = pelaajanKuva;
214        pelaaja1.Tag = "pelaaja1";
215
216
217
218        pelaaja1.LeftIdleAnimation = new Animation(paikallaanvasemmalle);
219        pelaaja1.RightIdleAnimation = new Animation(paikallaanoikelle);
220
221        pelaaja1.LeftWalkingAnimation = new Animation(kavelyvasemmalle);
222        pelaaja1.RightWalkingAnimation = new Animation(kavelyoikelle);
223        AddCollisionHandler(pelaaja1, osupelaajaan);
224
225        return pelaaja1;
226
227
228
229
230    }
231
232
233
234
235    void lisaaNappaimet()
236    {
237        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
238        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
239        Keyboard.Listen(Key.E, ButtonState.Pressed, avaainventory, "avaa inventoryn");
240        Keyboard.Listen(Key.E, ButtonState.Released, sulkeeinventory, "sulkee inventoryn");
241
242        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
243        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
244        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
245
246        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
247
248        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
249        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
250        ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
251    }
252
253    void liikuta(PlatformCharacter hahmo, double nopeus)
254    {
255        hahmo.Walk(nopeus);
256    }
257
258    void hyppaa(PlatformCharacter hahmo, double nopeus)
259    {
260        hahmo.Jump(nopeus);
261    }
262
263
264    void osupelaajaan(PhysicsObject pelaaja, PhysicsObject kohde)
265    {
266        if (pelaaja.Tag.ToString() == "pelaaja1")
267        {
268            if (kohde.Tag.ToString() == "heppu")
269            {
270                maaliAani.Play();
271                MessageDisplay.Add("Die");
272                pelaaja.Destroy();
273            }
274           
275            if (kohde.Tag.ToString() == "kerattava1")
276            {
277                keratytTavarat.Add(kohde);
278                kohde.Destroy();
279            }
280        }
281    }
282    void AvaaInventory()
283    {
284        Inventory = new Widget(253.0, 388.0);
285        Inventory.X = Screen.LeftSafe + 1000;
286        Inventory.Y = Screen.TopSafe - 400;
287
288        Inventory.Image = LoadImage("inventory");
289        Add(Inventory);
290
291        for (int i = 0; i < keratytTavarat.Count; i++)
292        {
293            if (keratytTavarat[i].Tag.ToString() == "kerattava1")
294            {
295                Widget aseWidget = new Widget(35, 35);
296                aseWidget.X = Screen.LeftSafe + 1000;
297                aseWidget.Y = Screen.TopSafe - 400;
298                Add(aseWidget);
299            }
300        }
301
302    }
303
304
305    void avaainventory()
306    {
307        AvaaInventory();
308
309    }
310    void sulkeeinventory()
311    {
312        Inventory.Destroy();
313
314    }
315}
316
Note: See TracBrowser for help on using the repository browser.