source: 2012/09-22/SanteriH/Kynari/Kynari/Kynari/Kynari.cs @ 3883

Revision 3883, 21.6 KB checked in by sijoseha, 8 years ago (diff)
Line 
1using System;
2
3using Jypeli;
4using Jypeli.Widgets;
5using Jypeli.Assets;
6using Jypeli.Controls;
7
8// Yksinkertainen tasohyppely.
9public class Kynari : PhysicsGame
10{
11    #region Muuttujat
12
13    const double liikeVoima = 500;
14    const double hyppyVoima = 1000;
15
16    PlatformCharacter pelaaja1;
17    PlatformCharacter pelaaja2;
18    DoubleMeter HitPoint1 = new DoubleMeter(100);
19    DoubleMeter HitPoint2 = new DoubleMeter(100);
20
21    Image kranaatinheittimenkuva = LoadImage("grenade");
22    Image magnumkuva = LoadImage("magnum");
23    Image norsu = LoadImage("norsu");
24    Image haulikonkuva = LoadImage("shotgun");
25    Image pistoolinkuva = LoadImage("pistol");
26
27    SoundEffect hyppyAani = LoadSoundEffect("hyppays");
28
29    BarGauge hpNaytto;
30    BarGauge hpNaytto2;
31
32    bool pelaaja1asevaihto = true;
33    bool pelaaja2asevaihto = true;
34
35    Meter<int> pelaajan1Pisteet;
36    Meter<int> pelaajan2Pisteet;
37
38    #endregion
39
40    #region Alustukset
41    public override void Begin()
42    {
43        LisaaLaskurit();
44        DrawPerimeter = false; // ei haluta piirtää kentän reunoja
45
46        // Asetetaan painovoima
47
48        // Zoomataan lähemmäksi
49        Camera.ZoomFactor = 0.7;
50        aloitaUusiPeli();
51    }
52
53    void aloitaUusiPeli()
54    {
55        MessageDisplay.Clear();
56        // ladataan kenttä
57        seuraavaKentta();
58        pelaaja1asevaihto = true;
59        pelaaja2asevaihto = true;
60        //naytaTiedot();
61
62    }
63    #endregion
64
65
66    #region KentanLataus
67    void seuraavaKentta()
68    {
69        ClearAll();
70        luoKentta();
71        lisaaNappaimet();
72        Camera.Position = new Vector(0, 0);
73    }
74
75    Level luoKentta()
76    {
77        Level.Width = 4000;
78        Level.Height = 1000;
79        Level.CreateBorders();
80        Level.Background.CreateGradient(Color.White, Color.Gray);
81        Gravity = new Vector(0, -1000);
82        luoTasot();
83        lisaaPelaajat();
84        lisaaAsePelaajalle();
85        lisaaKerattavaAse();
86        lisaaHPNaytot();
87
88        return Level;
89    }
90
91    void luoTasot()
92    {
93        PhysicsObject alusta = new PhysicsObject(Level.Width, 300);
94        alusta.Color = Color.Gray;
95        alusta.X = 0;
96        alusta.Y = Level.Bottom - alusta.Height / 2;
97        Add(alusta);
98
99        lisaaPieniTaso(-200, -350);
100        lisaaPieniTaso(0, -400);
101        lisaaPieniTaso(100, -300);
102        lisaaPieniTaso(400, -350);
103        lisaaPieniTaso(450, -200);
104        lisaaPieniTaso(-500, -400);
105        lisaaPieniTaso(-550, -200);
106        lisaaPieniTaso(-400, -300);
107        lisaaPieniTaso(-150, -150);
108        lisaaPieniTaso(-870, -350);
109        lisaaPieniTaso(-700, -400);
110
111        lisaaPieniTaso(600, -300);
112        lisaaPieniTaso(850, -300);
113        lisaaPieniTaso(750, -400);
114        lisaaPieniTaso(200, -200);
115        lisaaPieniTaso(-200, -150);
116
117        lisaaPystyTaso(600, -450);
118        lisaaPystyTaso(-600, -500);
119        lisaaPystyTaso(0, -450);
120
121        lisaaReuna(-900, 0);
122        lisaaReuna(900, 0);
123    }
124
125    void lisaaHPNaytot()
126    {
127        // luodaan elämänäyttö
128        hpNaytto = new BarGauge(30, 250);
129        hpNaytto.Angle = Angle.FromDegrees(90);
130        hpNaytto.BarColor = Color.LightGreen;
131        hpNaytto.Color = Color.Red;
132        hpNaytto.BindTo(HitPoint1);
133        hpNaytto.Position = new Vector(Screen.RightSafe - 1000, Screen.TopSafe - 170);
134        Add(hpNaytto);
135
136        hpNaytto2 = new BarGauge(30, 250);
137        hpNaytto2.Angle = Angle.FromDegrees(90);
138        hpNaytto2.BarColor = Color.LightGreen;
139        hpNaytto2.Color = Color.Red;
140        hpNaytto2.BindTo(HitPoint2);
141        hpNaytto2.Position = new Vector(Screen.RightSafe - 300, Screen.TopSafe - 170);
142        Add(hpNaytto2);
143    }
144
145    void LisaaLaskurit()
146    {
147        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0);
148        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0);
149        pelaajan1Pisteet.UpperLimit += (laskuri1_UpperLimit);
150        pelaajan2Pisteet.UpperLimit += (laskuri2_UpperLimit);
151    }
152
153    void NollaaLaskurit()
154    {
155        pelaajan1Pisteet.Reset();
156        pelaajan2Pisteet.Reset();
157    }
158
159    IntMeter LuoPisteLaskuri(double x, double y)
160    {
161        IntMeter laskuri = new IntMeter(0);
162        Label naytto = new Label();
163        naytto.BindTo(laskuri);
164        naytto.X = x;
165        naytto.Y = y;
166        Add(naytto);
167        return laskuri;
168    }
169
170    void laskuri1_UpperLimit()
171    {
172        MessageDisplay.Clear();
173        MessageDisplay.Add("Pelaaja 1 voittaa!");
174        MessageDisplay.X = -100;
175
176    }
177
178    void laskuri2_UpperLimit()
179    {
180        MessageDisplay.Clear();
181        MessageDisplay.Add("Pelaaja 2 voittaa!");
182        MessageDisplay.X = -100;
183
184    }
185
186    void lisaaPieniTaso(double x, double y)
187    {
188        PhysicsObject taso = PhysicsObject.CreateStaticObject(100, 30);
189        taso.Color = Color.Gray;
190        taso.X = x;
191        taso.Y = y;
192        Add(taso);
193    }
194
195    void lisaaReuna(double x, double y)
196    {
197        PhysicsObject taso = PhysicsObject.CreateStaticObject(50, 1000);
198        taso.Color = Color.Gray;
199        taso.X = x;
200        taso.Y = y;
201        Add(taso);
202    }
203
204    void lisaaPystyTaso(double x, double y)
205    {
206        PhysicsObject taso = PhysicsObject.CreateStaticObject(30, 100);
207        taso.Color = Color.Gray;
208        taso.X = x;
209        taso.Y = y;
210        Add(taso);
211    }
212
213    void lisaaPelaajat()
214    {
215        pelaaja1 = new PlatformCharacter(40, 40, Shape.Circle);
216        pelaaja1.Image = norsu;
217        pelaaja1.X = -700;
218        pelaaja1.Mass = 4;
219        pelaaja1.Y = Level.Bottom + 100;
220
221        pelaaja2 = new PlatformCharacter(40, 40, Shape.Circle);
222        pelaaja2.Image = norsu;
223        pelaaja2.X = 700;
224        pelaaja2.Y = Level.Bottom + 100;
225
226        HitPoint1.MaxValue = 100;
227        HitPoint1.Value = 100;
228        HitPoint1.LowerLimit += pelaaja1Kuoli;
229
230        HitPoint2.MaxValue = 100;
231        HitPoint2.Value = 100;
232        HitPoint2.LowerLimit += pelaaja2Kuoli;
233
234        Add(pelaaja1);
235        Add(pelaaja2);
236    }
237
238    void pelaaja1Kuoli()
239    {
240        /*
241        PlatformCharacter pelaaja = (PlatformCharacter)sender;
242        pelaaja.UnequipWeapon();
243        Weapon kuolinAse = pelaaja.Weapon;
244        kuolinAse.RemoveFromOwner();
245        kuolinAse.Unequip();
246        kuolinAse.Visible = true;
247        */
248        pelaaja1.Destroy();
249        MessageDisplay.Clear();
250        MessageDisplay.X = -100;
251        MessageDisplay.Add("Pelaaja 2 voitti erän!");
252        pelaajan2Pisteet.Value += 1;
253
254        if (pelaajan2Pisteet.Value == pelaajan2Pisteet.MaxValue)
255        {
256            return;
257        }
258
259        else
260        {
261            Timer.SingleShot(3.0, eraloppui);
262            /*
263            Timer ajastin2 = new Timer();
264            ajastin2.Interval = 3;
265            ajastin2.Trigger += new Timer.TriggerHandler(eraloppui);
266            ajastin2.Start();
267            AddTimer(ajastin2);
268             * */
269        }
270
271    }
272    void pelaaja2Kuoli()
273    {
274        /*
275        PlatformCharacter pelaaja = (PlatformCharacter)sender;
276        pelaaja.UnequipWeapon();
277        Weapon kuolinAse = pelaaja.Weapon;
278        kuolinAse.RemoveFromOwner();
279        kuolinAse.Unequip();
280        kuolinAse.Visible = true;
281        */
282        pelaaja2.Destroy();
283        MessageDisplay.Clear();
284        MessageDisplay.X = -100;
285        MessageDisplay.Add("Pelaaja 1 voitti erän!");
286        pelaajan1Pisteet.Value += 1;
287
288        if (pelaajan2Pisteet.Value == pelaajan2Pisteet.MaxValue)
289        {
290            return;
291        }
292
293        else
294        {
295            Timer.SingleShot(3.0, eraloppui);
296            /*
297            Timer ajastin2 = new Timer();
298            ajastin2.Interval = 3;
299            ajastin2.Trigger += new Timer.TriggerHandler(eraloppui);
300            ajastin2.Start();
301            AddTimer(ajastin2);
302            */
303        }
304    }
305
306    void eraloppui()
307    {
308        aloitaUusiPeli();
309    }
310
311    void keraaAse(PhysicsObject ase, PhysicsObject kohde)
312    {
313        if (kohde is PlatformCharacter)
314        {
315            Weapon ase2 = null;
316
317            if (kohde == pelaaja1)
318            {
319                if (pelaaja1asevaihto == false)
320                    return;
321
322                pelaaja1asevaihto = false;
323
324                ase2 = LuoAse(ase, pelaaja1);
325                VaihdaAse(ase2, pelaaja1);
326            }
327
328            if (kohde == pelaaja2)
329            {
330                if (pelaaja2asevaihto == false)
331                    return;
332
333                pelaaja2asevaihto = false;
334
335                ase2 = LuoAse(ase, pelaaja2);
336
337                VaihdaAse(ase2, pelaaja2);
338            }
339
340            Timer.SingleShot(1.0, delegate { salliAseenvaihto(kohde); });
341
342            //Timer ajastin = new Timer();
343            //ajastin.Interval = 1;
344            //ajastin.Tag = collision.Other;
345            //ajastin.Trigger += new Timer.TriggerHandler(salliAseenvaihto);
346            //ajastin.Start();
347            //AddTimer(ajastin);
348
349            // Pelaaja törmäsi aseeseen
350
351
352
353          /*  PlatformCharacter pelaaja = (PlatformCharacter)collision.Other;
354            if (ase.Owner != null)
355            {
356                return;
357            }
358            pelaaja.UnequipWeapon();
359            Weapon vanhaAse = pelaaja.Weapon;
360            vanhaAse.RemoveFromOwner();
361            vanhaAse.X = pelaaja.X + vanhaAse.Width;
362            vanhaAse.Y = pelaaja.Y;
363            vanhaAse.Visible = true;
364            vanhaAse.Hit(new Vector(100, 20));
365            pelaaja.Weapon = ase;
366            pelaaja.EquipWeapon();
367            pelaaja.Weapon.Texture = ase.Texture;
368            naytaTiedot(); */
369        }
370    }
371
372    private void VaihdaAse(Weapon ase, PlatformCharacter pelaaja)
373    {
374        /*if (ase..Owner != null)
375        {
376            return;
377        }*/
378        //pelaaja..UnequipWeapon();
379        Weapon vanhaAse = pelaaja.Weapon;
380        //vanhaAse.RemoveFromOwner();
381        vanhaAse.X = pelaaja.X + vanhaAse.Width;
382        vanhaAse.Y = pelaaja.Y;
383        //vanhaAse.Visible = true;
384        //vanhaAse.Hit(new Vector(100, 20));
385        pelaaja.Weapon = ase;
386       // pelaaja..EquipWeapon();
387       // pelaaja.Weapon.Texture = ase.Texture;
388
389
390       // naytaTiedot();
391    }
392
393    private Weapon LuoAse(PhysicsObject ase, PlatformCharacter pelaaja)
394    {
395        Weapon ase2 = null;
396
397        if (ase.Tag.ToString() == "Kivääri")
398            {
399                ase2 = new AssaultRifle(10, 10);
400                ase2.FireRate = 5;
401                //kivaari.MomentOfInertia = double.PositiveInfinity;
402                //kivaari.Mass = 0.1;
403                ase2.Tag = "Kivääri";
404                pelaaja.Add(ase2);
405            }
406        if (ase.Tag.ToString() == "Magnum")
407            {
408                ase2 = new AssaultRifle(10, 10);
409                ase2.FireRate = 1;
410                //magnum.MomentOfInertia = double.PositiveInfinity;
411                //magnum.Mass = 0.1;
412                ase2.Tag = "Magnum";
413                ase2.Image = magnumkuva;
414                //magnum.Shape = Shapes.CreateFromTexture(magnumtexture, new Vector(magnumtexture.Width, magnumtexture.Height), 100);
415                //magnum.Size = new Vector(magnumtexture.Width, magnumtexture.Height);
416                //magnum.UpdateShapeFromSize();
417                //magnum.AmmoType.Damage = new Damage(20);
418                pelaaja.Add(ase2);
419            }
420
421        if (ase.Tag.ToString() == "Haulikko")
422            {
423                ase2 = new AssaultRifle(10, 10);
424                ase2.FireRate = 0.75;
425                //haulikko.MomentOfInertia = double.PositiveInfinity;
426                //haulikko.Mass = 0.1;
427                ase2.Tag = "Haulikko";
428                //haulikko.AmmoType.Damage = new Damage(35);
429                //haulikko.AmmoType.ClusterArc = 3;
430                ase2.Image = haulikonkuva;
431                pelaaja.Add(ase2);
432            }
433
434        if (ase.Tag.ToString() == "Kranaatinheitin")
435            {
436                ase2 = new Cannon(10, 10);
437                ase2.FireRate = 0.2;
438                //kranaatinheitin.MomentOfInertia = double.PositiveInfinity;
439                //kranaatinheitin.Mass = 0.1;
440                //kranaatinheitin.Power = new Meter<double>(5000, 0, 5000);
441                ase2.Tag = "Kranaatinheitin";
442                ase2.Image = kranaatinheittimenkuva;
443                //kranaatinheitin.Shape = Shapes.CreateFromTexture(grenade, new Vector(grenade.Width, grenade.Height), 100);
444                //kranaatinheitin.Size = new Vector(grenade.Width, grenade.Height);
445                //kranaatinheitin.UpdateShapeFromSize();
446                pelaaja.Add(ase2);
447            }
448
449        if (ase.Tag.ToString() == "Pistooli")
450        {
451            ase2 = new AssaultRifle(10, 10);
452            ase2.FireRate = 2;
453            //pelaaja1.Weapon.Mass = 0.1;
454            //pelaaja1.EquipWeapon();
455            //pelaaja1.Weapon.MomentOfInertia = double.PositiveInfinity;
456            ase2.Tag = "Pistooli";
457            //pelaaja1.Weapon.Shape = Shapes.CreateFromTexture(pistol, new Vector(pistol.Width, pistol.Height), 100);
458            //pelaaja1.Weapon.Size = new Vector(pistol.Width, pistol.Height);
459            //pelaaja1.Weapon.UpdateShapeFromSize();
460            ase2.Image = pistoolinkuva;
461            pelaaja.Add(ase2);
462        }
463        return ase2;
464
465    }
466
467
468
469    void salliAseenvaihto(PhysicsObject kohde)
470    {
471        if (kohde == pelaaja1)
472        {
473            pelaaja1asevaihto = true;
474        }
475        else if (kohde == pelaaja2)
476        {
477            pelaaja2asevaihto = true;
478        }
479    }
480
481    bool OnkoPelaaja(PhysicsObject olio)
482    {
483        return (olio == pelaaja1 || olio == pelaaja2);
484    }
485
486    void lisaaKerattavaAse()
487    {
488        //Täällä lisätään ase kenttään
489        Bullet luoti = new Bullet(1);
490        Bullet luoti2 = new Bullet(1);
491        Bullet hauli = new Bullet(1);
492
493        Grenade kranaatti = new Grenade(1);
494        kranaatti.Explosion = new Explosion(20);
495       // kranaatti.ExplodeCondition = OnkoPelaaja; TODO: räjähtää kun osuu pelaajaan!
496
497        /*
498        Texture2D shotgun = Content.Load<Texture2D>("shotgun");
499        Texture2D grenade = Content.Load<Texture2D>("grenade");
500        Texture2D magnumtexture = Content.Load<Texture2D>("magnum");
501        */
502
503        PhysicsObject kivaari = new PhysicsObject(10, 10);
504        kivaari.X = 200;
505        kivaari.Y = -100;
506        //kivaari.FireRate = 5;
507        //kivaari.MomentOfInertia = double.PositiveInfinity;
508        //kivaari.Mass = 0.1;
509        kivaari.Tag = "Kivääri";
510        Add(kivaari);
511
512        PhysicsObject magnum = new PhysicsObject(10, 10);
513        magnum.X = 0;
514        magnum.Y = -300;
515        //magnum.FireRate = 1;
516        //magnum.MomentOfInertia = double.PositiveInfinity;
517        //magnum.Mass = 0.1;
518        magnum.Tag = "Magnum";
519        magnum.Image = magnumkuva;
520        //magnum.Shape = Shapes.CreateFromTexture(magnumtexture, new Vector(magnumtexture.Width, magnumtexture.Height), 100);
521        //magnum.Size = new Vector(magnumtexture.Width, magnumtexture.Height);
522        //magnum.UpdateShapeFromSize();
523        //magnum.AmmoType.Damage = new Damage(20);
524        Add(magnum);
525
526        PhysicsObject haulikko = new PhysicsObject(10, 10);
527        haulikko.X = -550;
528        haulikko.Y = 0;
529        //haulikko.FireRate = 0.75;
530        //haulikko.MomentOfInertia = double.PositiveInfinity;
531        //haulikko.Mass = 0.1;
532        haulikko.Tag = "Haulikko";
533        //haulikko.AmmoType.Damage = new Damage(35);
534        //haulikko.AmmoType.ClusterArc = 3;
535        haulikko.Image = haulikonkuva;
536        Add(haulikko);
537
538        PhysicsObject kranaatinheitin = new PhysicsObject(10, 10);
539        kranaatinheitin.X = -200;
540        kranaatinheitin.Y = -100;
541       // kranaatinheitin.FireRate = 0.2;
542        //kranaatinheitin.MomentOfInertia = double.PositiveInfinity;
543        //kranaatinheitin.Mass = 0.1;
544        //kranaatinheitin.Power = new Meter<double>(5000, 0, 5000);
545        kranaatinheitin.Tag = "Kranaatinheitin";
546        kranaatinheitin.Image = kranaatinheittimenkuva;
547        //kranaatinheitin.Shape = Shapes.CreateFromTexture(grenade, new Vector(grenade.Width, grenade.Height), 100);
548        //kranaatinheitin.Size = new Vector(grenade.Width, grenade.Height);
549        //kranaatinheitin.UpdateShapeFromSize();
550        Add(kranaatinheitin);
551
552        //Lisää myös törmäyksen käsittelijä aseelle, jossa kutsutaan keraaAse -aliohjelmaa
553        AddCollisionHandler(kivaari, keraaAse);
554        AddCollisionHandler(haulikko, keraaAse);
555        AddCollisionHandler(kranaatinheitin, keraaAse);
556        AddCollisionHandler(magnum, keraaAse);
557
558    }
559
560    void lisaaAsePelaajalle()
561    {
562        Bullet luoti = new Bullet(1);
563        PhysicsObject pistol1 = new PhysicsObject(10, 10);
564        pistol1.Image = pistoolinkuva;
565        pistol1.Tag = "Pistooli";
566
567        LuoAse(pistol1, pelaaja1);
568
569        //pelaaja1.UnequipWeapon();
570     /*   pelaaja1.Weapon = new AssaultRifle(10, 10);
571        pelaaja1.Weapon.FireRate = 2;
572        //pelaaja1.Weapon.Mass = 0.1;
573        Add(pelaaja1.Weapon);
574        //pelaaja1.EquipWeapon();
575        //pelaaja1.Weapon.MomentOfInertia = double.PositiveInfinity;
576        pelaaja1.Weapon.Tag = "Pistooli";
577        //pelaaja1.Weapon.Shape = Shapes.CreateFromTexture(pistol, new Vector(pistol.Width, pistol.Height), 100);
578        //pelaaja1.Weapon.Size = new Vector(pistol.Width, pistol.Height);
579        //pelaaja1.Weapon.UpdateShapeFromSize();
580        pelaaja1.Weapon.Image = pistoolinkuva;
581        AddCollisionHandler(pelaaja1.Weapon, keraaAse);
582
583        //pelaaja2.UnequipWeapon();
584        pelaaja2.Weapon = new AssaultRifle(10, 10);
585        pelaaja2.Weapon.FireRate = 2;
586        //pelaaja2.Weapon.Mass = 0.1;
587        Add(pelaaja2.Weapon);
588        //pelaaja2.EquipWeapon();
589        // pelaaja2.Weapon.MomentOfInertia = double.PositiveInfinity;
590        pelaaja2.Weapon.Tag = "Pistooli";
591        //pelaaja2.Weapon.Shape = Shapes.CreateFromTexture(pistol, new Vector(pistol.Width, pistol.Height), 100);
592        //pelaaja2.Weapon.Size = new Vector(pistol.Width, pistol.Height);
593        // pelaaja2.Weapon.UpdateShapeFromSize();
594        pelaaja2.Weapon.Image = pistoolinkuva;
595        AddCollisionHandler(pelaaja2.Weapon, keraaAse); */
596    }
597
598    #endregion
599
600
601    #region Nappaimet
602    // Lisää peliin kaikki näppäimet
603    void lisaaNappaimet()
604    {
605        ClearControls();
606        //Yleiset näppäimet
607        Keyboard.Listen(Key.F1, ButtonState.Pressed, uusiPeli, "Aloittaa uuden pelin");
608
609        // Pelaajan näppäimet
610        Keyboard.Listen(Key.A, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, new Vector(-liikeVoima, 0));
611        Keyboard.Listen(Key.D, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja1, new Vector(liikeVoima, 0));
612        Keyboard.Listen(Key.W, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja1, hyppyVoima);
613        Keyboard.Listen(Key.Space, ButtonState.Down, Ammu, "Ammu", pelaaja1);
614
615        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja2, new Vector(-liikeVoima, 0));
616        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja2, new Vector(liikeVoima, 0));
617        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja2, hyppyVoima);
618        Keyboard.Listen(Key.Enter, ButtonState.Down, Ammu, "Ammu", pelaaja2);
619
620        lisaaGamePadNappaimet(ControllerOne, pelaaja1);
621        lisaaGamePadNappaimet(ControllerTwo, pelaaja2);
622    }
623
624    void lisaaGamePadNappaimet(GamePad pelaajaNro, PlatformCharacter pelaaja)
625    {
626        //Yleiset näppäimet
627        //pelaajaNro.Listen(pelaajaNro, Button.Start, ButtonState.Pressed, uusiPeli, "Aloittaa uuden pelin");
628
629        //pelaajaNro.Listen(pelaajaNro, Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja, new Vector(-liikeVoima, 0));
630        //pelaajaNro.Listen(pelaajaNro, Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja, new Vector(liikeVoima, 0));
631        //pelaajaNro.Listen(pelaajaNro, Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja, hyppyVoima);
632        //pelaajaNro.Listen(pelaajaNro, Button.RightTrigger, ButtonState.Down, Ammu, "Ammu", pelaaja);
633    }
634
635    // Näppäimiin liitetyt toiminnot alkavat tästä -->
636    void liikuta(PlatformCharacter hahmo, Vector voima)
637    {
638        //hahmo.Walk(e.Time, voima);
639        hahmo.Walk(voima.X);
640    }
641
642    void naytaTiedot()
643    {
644        MessageDisplay.Clear();
645        MessageDisplay.X = -100;
646        MessageDisplay.Add("Pelaaja 1: " + pelaaja1.Weapon.Tag);
647        MessageDisplay.Add("Pelaaja 2: " + pelaaja2.Weapon.Tag);
648    }
649
650    void Ammu(PlatformCharacter hahmo)
651    {
652        if (hahmo.IsDestroyed)
653        {
654            return;
655        }
656
657        PhysicsObject ammus = hahmo.Weapon.Shoot();
658
659        if (ammus != null)
660        {
661            Add(ammus);
662        }
663
664        return;
665    }
666
667    void hyppaa(PlatformCharacter hahmo, double voima)
668    {
669        //PlatformCharacter hahmo = e.Parameter0 as PlatformCharacter;
670        //double voima = e.Parameter1.ToDouble();
671
672       /* if (Math.Abs(hahmo.Velocity.Y) > 0.001)
673        {
674            return;
675        }
676        */
677
678        if (hahmo.Jump(voima))
679        {
680            hyppyAani.Play();
681        }
682    }
683
684    void uusiPeli()
685    {
686        NollaaLaskurit();
687        aloitaUusiPeli();
688    }
689    #endregion
690
691
692}
Note: See TracBrowser for help on using the repository browser.