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

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