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

Revision 2405, 11.3 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    PlatformCharacter pelaaja2;
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    Image naattikuva = LoadImage("naatti");
49    SoundEffect maaliAani = LoadSoundEffect("maali");
50
51    List<PhysicsObject> keratytTavarat = new List<PhysicsObject>();
52
53    ExplosionSystem rajahdys = new ExplosionSystem(LoadImage("rajahdys"), 200);
54
55    public override void Begin()
56    {
57        Add(rajahdys);
58        paikallaanoikelle = Image.Mirror(paikallaanvasemmalle);
59        kavelyvasemmalle = Image.Mirror(kavelyoikelle);
60
61        paikallaanoikelle1 = Image.Mirror(paikallaanvasemmalle1);
62        kavelyoikelle1 = Image.Mirror(kavelyvasemmalle1);
63
64        Gravity = new Vector(0, -1000);
65
66        luoKentta();
67        lisaaNappaimet();
68
69        Camera.Follow(pelaaja1);
70        Camera.ZoomFactor = 1.2;
71        Camera.StayInLevel = true;
72    }
73
74    void luoKentta()
75    {
76        TileMap kentta = TileMap.FromFile("kentta1.txt");
77        kentta['#'] = lisaamaa;
78        kentta['*'] = lisaakulta;
79        kentta['N'] = lisaaPelaaja;
80        kentta['%'] = lisaakivi;
81        kentta['('] = lisaapuu;
82        kentta['/'] = lisaalehti;
83        kentta['^'] = lisaametalli;
84        kentta[';'] = lisaavesi;
85        kentta['B'] = lisaapilvi;
86        kentta['H'] = lisaaheppu;
87        kentta['='] = lisaaruoho;
88        kentta[')'] = lisaakoivu;
89        kentta['x'] = lisaaKerattava;
90        kentta['E'] = lisaaPelaaja2;
91        kentta.Insert(50, 50);
92        Level.CreateBorders();
93        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
94    }
95    RandomMoverBrain Satunnaisaivot = new RandomMoverBrain(12000);
96
97    //naattia makkaraa
98
99   
100
101
102    PhysicsObject lisaaKerattava()
103    {
104        PhysicsObject kerattava = new PhysicsObject(20, 20);
105        kerattava.Tag = "kerattava1";
106        return kerattava;
107    }
108
109    PhysicsObject lisaakoivu()
110    {
111        PhysicsObject koivu = PhysicsObject.CreateStaticObject(50, 50);
112        koivu.Image = koivukuva;
113        koivu.Tag = "kerattava2";
114        return koivu;
115    }
116    PhysicsObject lisaaruoho()
117    {
118        PhysicsObject ruoho = PhysicsObject.CreateStaticObject(50, 50);
119        ruoho.Image = ruohokuva;
120        ruoho.Tag = "kerattava3";
121
122        Add(ruoho);
123        return ruoho;
124    }
125    PhysicsObject lisaapilvi()
126    {
127        PhysicsObject pilvi = PhysicsObject.CreateStaticObject(50, 50);
128        pilvi.Image = pilvikuva;
129        pilvi.Tag = "kerattava4";
130
131        Add(pilvi);
132        return pilvi;
133    }
134    PhysicsObject lisaametalli()
135    {
136        PhysicsObject metalli = PhysicsObject.CreateStaticObject(50, 50);
137        metalli.Image = metalliKuva;
138        metalli.Tag = "kerattava5";
139
140        Add(metalli);
141        return metalli;
142    }
143
144    PhysicsObject lisaavesi()
145    {
146        PhysicsObject vesi = PhysicsObject.CreateStaticObject(50, 50);
147        vesi.Image = vesiKuva;
148        vesi.Tag = "kerattava6";
149
150
151        Add(vesi);
152        return vesi;
153       
154    }
155
156    PhysicsObject lisaalehti()
157    {
158        PhysicsObject lehti = PhysicsObject.CreateStaticObject(50, 50);
159        lehti.Image = lehtiKuva;
160        lehti.Tag = "kerattava7";
161
162        Add(lehti);
163        return lehti;
164    }
165    PhysicsObject lisaapuu()
166    {
167        PhysicsObject puu = PhysicsObject.CreateStaticObject(50, 50);
168        puu.Image = puuKuva;
169        puu.Tag = "kerattava8";
170
171        Add(puu);
172        return puu;
173    }
174    PhysicsObject lisaakivi()
175    {
176        PhysicsObject kivi = PhysicsObject.CreateStaticObject(50, 50);
177        kivi.Image = kiviKuva;
178        kivi.Tag = "kerattava9";
179        Add(kivi);
180        return kivi;
181    }
182    GameObject lisaamaa()
183    {
184        GameObject maa = new GameObject(50, 50);
185        maa.Image = maaKuva;
186        maa.Tag = "kerattava10";
187
188        return maa;
189    }
190
191    PhysicsObject lisaakulta()
192    {
193        PhysicsObject kulta = PhysicsObject.CreateStaticObject(50, 50);
194        kulta.Image = kultaKuva;
195        kulta.Tag = "kerattava11";
196        Add(kulta);
197
198        return kulta;
199    }
200    PhysicsObject lisaaheppu()
201    {
202        PlatformCharacter heppu = new PlatformCharacter(50, 50);
203
204        heppu.Brain = Satunnaisaivot;
205        Satunnaisaivot.ChangeMovementSeconds = RandomGen.NextDouble(2.3, 5.5);
206        heppu.Tag = "heppu";
207        heppu.Image = heppukuva;
208        heppu.LeftIdleAnimation = new Animation(paikallaanvasemmalle1);
209        heppu.RightIdleAnimation = new Animation(paikallaanoikelle1);
210
211        heppu.LeftWalkingAnimation = new Animation(kavelyvasemmalle1);
212        heppu.RightWalkingAnimation = new Animation(kavelyoikelle1);
213
214        Add(heppu);
215        return heppu;
216    }
217    PlatformCharacter lisaaPelaaja()
218    {
219        pelaaja1 = new PlatformCharacter(50, 100);
220        pelaaja1.Mass = 4.0;
221        pelaaja1.Image = pelaajanKuva;
222        pelaaja1.Tag = "pelaaja1";
223        pelaaja1.Weapon = new PlasmaCannon(50, 20);
224        pelaaja1.Weapon.ProjectileCollision = AmmusOsui;
225       
226
227        pelaaja1.LeftIdleAnimation = new Animation(paikallaanvasemmalle);
228        pelaaja1.RightIdleAnimation = new Animation(paikallaanoikelle);
229
230        pelaaja1.LeftWalkingAnimation = new Animation(kavelyvasemmalle);
231        pelaaja1.RightWalkingAnimation = new Animation(kavelyoikelle);
232        AddCollisionHandler(pelaaja1, osupelaajaan);
233
234        return pelaaja1;
235    }
236
237    PlatformCharacter lisaaPelaaja2()
238    {
239        pelaaja2 = new PlatformCharacter(50, 100);
240        pelaaja2.Mass = 4.0;
241        pelaaja2.Image = pelaajanKuva;
242        pelaaja2.Tag = "pelaaja2";
243        pelaaja2.Weapon = new PlasmaCannon(50, 20);
244        pelaaja2.Weapon.ProjectileCollision = AmmusOsui;
245
246
247
248
249
250
251
252        pelaaja2.LeftIdleAnimation = new Animation(paikallaanvasemmalle);
253        pelaaja2.RightIdleAnimation = new Animation(paikallaanoikelle);
254
255        pelaaja2.LeftWalkingAnimation = new Animation(kavelyvasemmalle);
256        pelaaja2.RightWalkingAnimation = new Animation(kavelyoikelle);
257        AddCollisionHandler(pelaaja2, osupelaajaan);
258
259        return pelaaja2;
260
261
262
263
264    }
265
266
267    void lisaaNappaimet()
268    {
269        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
270        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
271        Keyboard.Listen(Key.E, ButtonState.Pressed, avaainventory, "avaa inventoryn");
272        Keyboard.Listen(Key.E, ButtonState.Released, sulkeeinventory, "sulkee inventoryn");
273        Keyboard.Listen(Key.G, ButtonState.Pressed, kranaatti, "heittää kranata");
274        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
275        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
276        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
277        Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu");
278
279        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
280        ControllerOne.ListenAnalog(AnalogControl.RightTrigger, 0.1, AmmuAseella2, "omg lol wtf");
281        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja2, -nopeus);
282        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja2, nopeus);
283        ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja2, hyppyNopeus);
284    }
285
286    void liikuta(PlatformCharacter hahmo, double nopeus)
287    {
288        hahmo.Walk(nopeus);
289    }
290
291    void hyppaa(PlatformCharacter hahmo, double nopeus)
292    {
293        hahmo.Jump(nopeus);
294    }
295
296
297    void osupelaajaan(PhysicsObject pelaaja, PhysicsObject kohde)
298    {
299        if (pelaaja.Tag.ToString() == "pelaaja1")
300        {
301            if (kohde.Tag.ToString() == "heppu")
302            {
303                maaliAani.Play();
304                MessageDisplay.Add("Die");
305                pelaaja.Destroy();
306            }
307           
308            if (kohde.Tag.ToString() == "kerattava1")
309            {
310                keratytTavarat.Add(kohde);
311                kohde.Destroy();
312            }
313            if (kohde.Tag.ToString() == "kranaatti")
314            {   
315                kohde.Destroy(); 
316            }
317        }
318    }
319    void AvaaInventory()
320    {
321        Inventory = new Widget(253.0, 388.0);
322        Inventory.X = Screen.LeftSafe + 1000;
323        Inventory.Y = Screen.TopSafe - 400;
324
325        Inventory.Image = LoadImage("inventory");
326        Add(Inventory);
327
328        for (int i = 0; i < keratytTavarat.Count; i++)
329        {
330            if (keratytTavarat[i].Tag.ToString() == "kerattava1")
331            {
332                Widget aseWidget = new Widget(35, 35);
333                aseWidget.X = Screen.LeftSafe + 1000;
334                aseWidget.Y = Screen.TopSafe - 400;
335                Add(aseWidget);
336            }
337        }
338    }
339
340
341    void avaainventory()
342    {
343        AvaaInventory();
344
345    }
346    void sulkeeinventory()
347    {
348        Inventory.Destroy();
349
350    }
351   
352    void kranaatti()
353    {
354        Grenade Kranaatti = new Grenade(4.0);
355        Kranaatti.X = pelaaja1.X + 10;
356        Kranaatti.Y = pelaaja1.Y + 10;
357       
358        Vector heittovoima = Vector.FromLengthAndAngle(4000, Angle.FromDegrees(45));
359        Add(Kranaatti);
360    }
361
362    void AmmuAseella()
363    {
364        PhysicsObject ammus = pelaaja1.Weapon.Shoot();
365
366        if (ammus != null)
367        {
368            ammus.Size *= 2;
369        }
370    }
371    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
372    {
373        rajahdys.AddEffect(kohde.Position, 30);       
374        ammus.Destroy();
375    }
376    void AmmuAseella2(AnalogState liipasimenTila)
377    {
378        PhysicsObject ammus = pelaaja2.Weapon.Shoot();
379        double liipasimenAsento = liipasimenTila.State;
380
381
382        if (ammus != null)
383        {
384            ammus.Size *= 2;
385        }
386    }
387}
388
Note: See TracBrowser for help on using the repository browser.