source: 2017/31/TaavettiV/Trumpsimulator/Trumpsimulator/Trumpsimulator/Trumpsimulator.cs @ 9398

Revision 9398, 23.1 KB checked in by nupeohje, 20 months ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9class Pelihahmo : PlatformCharacter
10{
11    public double nopeus = 300;
12    public double hyppyNopeus = 750;
13
14
15    private IntMeter elamaLaskuri = new IntMeter(10, 0, 10);
16    public IntMeter ElamaLaskuri { get { return elamaLaskuri; } }
17
18    public Pelihahmo(double leveys, double korkeus)
19        : base(leveys, korkeus)
20    {
21        elamaLaskuri.LowerLimit += delegate { this.Destroy(); };
22    }
23
24}
25
26class Caktus : PhysicsObject
27{
28    private IntMeter elamaLaskuri = new IntMeter(5, 0, 5);
29    public IntMeter ElamaLaskuri { get { return elamaLaskuri; } }
30
31    public Caktus(double leveys, double korkeus)
32        : base(leveys, korkeus)
33    {
34        elamaLaskuri.LowerLimit += delegate { this.Destroy(); };
35    }
36
37}
38
39
40class Wife : PlatformCharacter
41{
42    private IntMeter elamaLaskuri = new IntMeter(1000000000, 0, 1000000000);
43    public IntMeter ElamaLaskuri { get { return elamaLaskuri; } }
44    public Timer Ajastin;
45    public Wife(double leveys, double korkeus)
46        : base(leveys, korkeus)
47    {
48        elamaLaskuri.LowerLimit += delegate { this.Destroy(); };
49    }
50
51    public bool AloitaAjastin()
52    {
53        return true;
54    }
55}
56
57
58class Asevihu : PlatformCharacter
59{
60    private IntMeter elamaLaskuri = new IntMeter(3, 0, 3);
61    public IntMeter ElamaLaskuri { get { return elamaLaskuri; } }
62    public Timer Ajastin;
63    public Asevihu(double leveys, double korkeus)
64        : base(leveys, korkeus)
65    {
66        elamaLaskuri.LowerLimit += delegate { this.Destroy(); };
67    }
68
69    public bool AloitaAjastin()
70    {
71        return true;
72    }
73}
74
75
76
77
78class Bombi : PlatformCharacter
79{
80    private IntMeter elamaLaskuri = new IntMeter(3, 0, 3);
81    public IntMeter ElamaLaskuri { get { return elamaLaskuri; } }
82
83    public Bombi(double leveys, double korkeus)
84        : base(leveys, korkeus)
85    {
86        elamaLaskuri.LowerLimit += delegate { this.Destroy(); };
87    }
88
89}
90
91
92
93
94class Talo : PlatformCharacter
95{
96    private IntMeter elamaLaskuri = new IntMeter(10, 0, 10);
97    public IntMeter ElamaLaskuri { get { return elamaLaskuri; } }
98
99    public Talo(double leveys, double korkeus)
100        : base(leveys, korkeus)
101    {
102        elamaLaskuri.LowerLimit += delegate { this.Destroy(); };
103    }
104
105}
106
107
108
109public class Trumpsimulator : PhysicsGame
110{
111   
112    const int RUUDUN_KOKO = 40;
113    const double flynopeus = 3000;
114    IntMeter pommilaskuri = new IntMeter(0, 0, 10000);
115
116    Image meksikolainen = LoadImage("meksikolainen");
117    Pelihahmo pelaaja1;
118    Pelihahmo pelaaja2;
119
120    DoubleMeter jetpacklaskuri;
121
122    int kenttaNumero = 3;
123    Image bombiKuva = LoadImage("Bombi");
124    Image pelaajanKuva = LoadImage("trumphahmo");
125    Image tahtiKuva = LoadImage("one dollar");
126    Image wifekuva = LoadImage("untitled");
127
128    SoundEffect maaliAani = LoadSoundEffect("maali");
129    Image olio6Kuva = LoadImage("tumbleweed");
130
131    IntMeter pisteLaskuri;
132
133    void LuoPistelaskuri()
134    {
135        pisteLaskuri = new IntMeter(0);
136
137        Label pisteNaytto = new Label();
138        pisteNaytto.X = Screen.Left + 100;
139        pisteNaytto.Y = Screen.Top - 100;
140        pisteNaytto.TextColor = Color.Black;
141        pisteNaytto.Color = Color.White;
142
143        pisteNaytto.BindTo(pisteLaskuri);
144        pisteNaytto.IntFormatString = "{0} $";
145        Add(pisteNaytto);
146    }
147
148    public override void Begin()
149    {
150        ClearAll();
151        Gravity = new Vector(0, -1000);
152
153        jetpacklaskuri = new DoubleMeter(0, 0, 100);
154
155        LuoKentta();
156        LisaaNappaimet();
157        LuoPistelaskuri();
158
159        Camera.Follow(pelaaja1);
160        Camera.ZoomFactor = 1.2;
161        Camera.StayInLevel = true;
162    }
163    void Rajayta(PhysicsObject tormaaja, PhysicsObject Kohde)
164    {
165        int pMaxMaara = 3;
166        // Alustetaan räjähdysjärjestelmä
167        // Parametrit:
168        // * kuva: mitä tekstuuria räjähdyksen
169        //   hiukkasten halutaan käyttävän
170        // * pMaxMaara: räjähdyksen käyttämien
171        //   hiukkasten eli partikkeleiden maksimimäärä
172        ExplosionSystem rajahdys =
173        new ExplosionSystem(LoadImage("tomasräjähdys"), pMaxMaara);
174        rajahdys.MaxScale = 100;
175
176
177        // Lisätään järjestelmä peliin
178        Add(rajahdys);
179
180        int pMaara = 50;
181        // "Käynnistetään" räjähdys
182        rajahdys.AddEffect(tormaaja.X, Kohde.Y, pMaara);
183        tormaaja.Destroy();
184    }
185    void tomas(Vector paikka, double leveys, double korkeus)
186    {
187        PlatformCharacter y = new PlatformCharacter(leveys * 0.8, korkeus * 1.0);
188        y.Position = paikka;
189
190
191
192
193        Add(y);
194        y.Tag = "y";
195        y.Image = LoadImage("tumbleweed");
196        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
197        tasoAivot.Speed = 200;
198
199        tasoAivot.FallsOffPlatforms = true;
200        tasoAivot.TriesToJump = true;
201
202        y.Brain = tasoAivot;
203
204    }
205
206    void bombi(Vector paikka, double leveys, double korkeus)
207    {
208        PlatformCharacter p = new PlatformCharacter(leveys * 2.0, korkeus * 2.0);
209        p.Position = paikka;
210        p.Image = bombiKuva;
211        Add(p);
212        p.Tag = "p";
213
214
215
216        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
217        tasoAivot.Speed = 100;
218
219        tasoAivot.FallsOffPlatforms = true;
220        tasoAivot.TriesToJump = true;
221
222        p.Brain = tasoAivot;
223
224    }
225    void paasiMaalin(PhysicsObject pelaaja, PhysicsObject maali)
226    {
227        kenttaNumero++;
228
229        ClearAll();
230        Begin();
231
232
233    }
234    void lisaaMaali(Vector paikka, double leveys, double korkeus)
235    {
236        PhysicsObject maali = PhysicsObject.CreateStaticObject(leveys, korkeus);
237        maali.Tag = "maali";
238        maali.Position = paikka;
239        Add(maali);
240    }
241
242    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
243    {
244        ammus.Destroy();
245        if (kohde.Tag.Equals("A"))
246        {
247            (kohde as Asevihu).ElamaLaskuri.Value--;
248        }
249
250        if (kohde is Caktus)
251        {
252            (kohde as Caktus).ElamaLaskuri.Value--;
253        }
254
255        if (kohde is Talo)
256        {
257            (kohde as Talo).ElamaLaskuri.Value--;
258        }
259    }
260
261    void AmmuAseella(PlatformCharacter ampuja)
262    {
263        if (pelaaja1.IsDestroyed) return;
264
265        PhysicsObject ammus = ampuja.Weapon.Shoot();
266
267        if (ammus != null)
268        {
269            //ammus.Size *= 0.10;
270            ammus.Width = 20;
271            ammus.Height = 1;
272            //ammus.Image = ...
273            ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
274        }
275
276    }
277    void avaaKKauppa()
278    {
279        MultiSelectWindow alkuValikko = new MultiSelectWindow("shop", "jetpack(10$)", "ammo(5$)", "atomi bommi(30$)");
280        Add(alkuValikko);
281
282        alkuValikko.AddItemHandler(0, ostajetpack);
283        alkuValikko.AddItemHandler(1, ostaammo);
284        alkuValikko.AddItemHandler(2, ostaatomibommi);
285    }
286    void ostajetpack()
287    {
288        if(pisteLaskuri.Value >= 10)
289        {
290            pisteLaskuri.Value -= 10;
291            jetpacklaskuri.Value = 100;
292        }
293    }
294
295    void ostaammo()
296    {
297        if (pisteLaskuri.Value >= 5)
298        {
299            pisteLaskuri.Value -= 5;
300            pelaaja1.Weapon.Ammo.Value += 5000;
301        }
302    }
303    void ostaatomibommi()
304    {
305        if (pisteLaskuri.Value >= 30)
306        {
307            pisteLaskuri.Value -= 30;
308            pommilaskuri.Value += 1;
309        }
310    }
311    void VihuAmmuAseella(PlatformCharacter ampuja)
312    {
313        if (ampuja.IsDestroyed) return;
314
315        PhysicsObject ammus = ampuja.Weapon.Shoot();
316
317        if (ammus != null)
318        {
319            //ammus.Size *= 0.10;
320            ammus.Width = 20;
321            ammus.Height = 1;
322            //ammus.Image = ...
323            ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
324            AddCollisionHandler(ammus, "talo", Tormaataloon);
325        }
326
327    }
328
329    void Tormaataloon(PhysicsObject tormaa, PhysicsObject kohde)
330    {
331        (kohde as Talo).ElamaLaskuri.AddValue(-1);
332    }
333    void LuoKentta()
334    {
335
336        TileMap kentta = TileMap.FromLevelAsset("kentta" + kenttaNumero);
337        kentta.SetTileMethod('#', LisaaTaso);
338        kentta.SetTileMethod('*', Lisaadollar);
339        kentta.SetTileMethod('N', LisaaPelaaja);
340        kentta.SetTileMethod('K', lisaaMaali);
341        kentta.SetTileMethod('y', tomas);
342        kentta.SetTileMethod('A', Lisaaasevihu);
343        kentta.SetTileMethod('Q', wife);
344        kentta.SetTileMethod('H', Lisaahiekka);
345        kentta.SetTileMethod('R', LisaaRuoho);
346        kentta.SetTileMethod('Z', LisaaTalo);
347        kentta.SetTileMethod('M', LisaaMuuri);
348        kentta.SetTileMethod('G', LisaaTacoVihu);
349        kentta.SetTileMethod('W', Lisaaweed);
350        kentta.SetTileMethod('p', bombi);
351        kentta.SetTileMethod('C', Lisaacaktus);
352        kentta.SetTileMethod('I', Lisaailuminadi);
353        kentta.SetTileMethod('J', lisaajetpack);
354        kentta.SetTileMethod('X', Lisaamd);
355        kentta.SetTileMethod('t', Lisaatupakka);
356        kentta.Optimize('H');
357        kentta.Optimize('R');
358        kentta.Optimize('#');
359
360        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
361
362
363        Level.CreateBorders();
364        Level.Background.CreateGradient(Color.White, Color.SeaGreen);
365        Level.Background.Image = LoadImage("taustakuvanewyork");
366    }
367
368    void lisaajetpack(Vector paikka, double leveys, double korkeus)
369    {
370        PhysicsObject jetpack = PhysicsObject.CreateStaticObject(leveys, korkeus);
371        jetpack.Position = paikka;
372        jetpack.Image = LoadImage("jetpack picture");
373        jetpack.IgnoresCollisionResponse = true;
374        jetpack.Tag = "jetpack";
375       
376        Add(jetpack);
377
378    }
379
380    void HeitaKranaatti(PlatformCharacter pelaaja)
381    {
382        if (pelaaja.IsDestroyed) return;
383
384        Grenade kranu = new Grenade(3.0);
385        pelaaja.Throw(kranu, Angle.FromDegrees(50), 10000);
386
387        kranu.Explosion.AddShockwaveHandler("A", KranaattiOsui);
388
389        kranu.Explosion.AddShockwaveHandler("p", KranaattiOsui);
390    }
391    void KranaattiOsui(IPhysicsObject rajahdyksenKohde, Vector v)
392    {
393        rajahdyksenKohde.Destroy();
394    }
395    void ydinpommi(IPhysicsObject rajahdyksenKohde, Vector v)
396    {
397        rajahdyksenKohde.Destroy();
398 
399    }
400    void Heitaydinpommi(PlatformCharacter pelaaja)
401    {
402        if (pelaaja.IsDestroyed)
403            return;
404
405        if (pommilaskuri.Value > 0)
406        {
407            pommilaskuri.Value -= 1;
408
409            Grenade kranu = new Grenade(180.0);
410            kranu.ExplosionRadius = 4000;
411            kranu.Image = LoadImage("iluminadi");
412            pelaaja1.Throw(kranu, Angle.FromDegrees(50), 1000);
413
414            kranu.Explosion.AddShockwaveHandler("A", KranaattiOsui);
415
416            kranu.Explosion.AddShockwaveHandler("p", KranaattiOsui);
417        }
418       
419    }
420    void LisaaTaso(Vector paikka, double leveys, double korkeus)
421    {
422        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
423        taso.Position = paikka;
424        taso.Color = Color.Green;
425        Add(taso);
426        taso.TextureWrapSize = new Vector(leveys / RUUDUN_KOKO, korkeus / RUUDUN_KOKO);
427    }
428
429    void LisaaMuuri(Vector paikka, double leveys, double korkeus)
430    {
431        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
432        taso.Position = paikka;
433        taso.Color = Color.Green;
434        Add(taso);
435
436        taso.Image = LoadImage("muuri");
437    }
438
439
440
441    void Lisaaweed(Vector paikka, double leveys, double korkeus)
442    {
443        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
444        taso.Position = paikka;
445        taso.Color = Color.Green;
446        Add(taso);
447
448        taso.Image = LoadImage("weed");
449    }
450
451
452    void Lisaatupakka(Vector paikka, double leveys, double korkeus)
453    {
454        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
455        taso.Position = paikka;
456        taso.Color = Color.Green;
457        Add(taso);
458
459        taso.Image = LoadImage("tupakka");
460    }
461
462
463    void Lisaailuminadi(Vector paikka, double leveys, double korkeus)
464    {
465        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
466        taso.Position = paikka;
467        taso.Color = Color.Green;
468        Add(taso);
469
470        taso.Image = LoadImage("iluminadi");
471    }
472
473
474
475    void Lisaahiekka(Vector paikka, double leveys, double korkeus)
476    {
477        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
478        taso.Position = paikka;
479
480        Add(taso);
481        taso.Color = Color.Green;
482        taso.Image = LoadImage("hiekka");
483        taso.TextureWrapSize = new Vector(leveys / RUUDUN_KOKO, korkeus / RUUDUN_KOKO);
484        Add(taso);
485    }
486
487    void LisaaTalo(Vector paikka, double leveys, double korkeus)
488    {
489        Talo taso = new Talo(leveys, korkeus);
490        taso.Position = paikka;
491        taso.Color = Color.Green;
492        taso.Tag = "talo";
493        Add(taso);
494        taso.MakeStatic();
495
496        taso.Image = LoadImage("talo");
497
498    }
499
500
501    void LisaaRuoho(Vector paikka, double leveys, double korkeus)
502    {
503        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
504        taso.Position = paikka;
505
506        Add(taso);
507        taso.Color = Color.Green;
508        taso.Image = LoadImage("ruoho");
509        taso.TextureWrapSize = new Vector(leveys / RUUDUN_KOKO, korkeus / RUUDUN_KOKO);
510    }
511
512
513
514    void Lisaamd(Vector paikka, double leveys, double korkeus)
515    {
516        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys*2, korkeus*3);
517        taso.Position = paikka;
518        taso.Bottom = paikka.Y - RUUDUN_KOKO / 2;
519
520        Add(taso);
521        taso.Color = Color.Green;
522        taso.Image = LoadImage("md");
523        taso.TextureWrapSize = new Vector(leveys / RUUDUN_KOKO, korkeus / RUUDUN_KOKO);
524    }
525
526
527
528
529
530
531    void Lisaacaktus(Vector paikka, double leveys, double korkeus)
532    {
533        Caktus taso = new Caktus(leveys, korkeus * 3);
534       
535        taso.MakeStatic();
536        taso.Position = paikka;
537        taso.Y = paikka.Y + RUUDUN_KOKO / 2;
538
539        Add(taso);
540        taso.Color = Color.Green;
541        taso.Image = LoadImage("caktus");
542    }
543
544
545
546
547
548    void Lisaadollar(Vector paikka, double leveys, double korkeus)
549    {
550        PhysicsObject dollar = PhysicsObject.CreateStaticObject(leveys, korkeus);
551        dollar.IgnoresCollisionResponse = true;
552        dollar.Position = paikka;
553        dollar.Image = tahtiKuva;
554        dollar.Tag = "dollar";
555        Add(dollar);
556    }
557    void pelaajaKuoli()
558    {
559        MultiSelectWindow alkuValikko = new MultiSelectWindow("havisit pelin HAHAHAHAH",
560"Aloita peli", "Shop", "Lopeta");
561        Add(alkuValikko);
562
563        alkuValikko.AddItemHandler(0, Begin);
564       // alkuValikko.AddItemHandler(1, shop);
565        alkuValikko.AddItemHandler(2, Exit);
566    }
567    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
568    {
569        pelaaja1 = new Pelihahmo(leveys, korkeus * 2.0);
570        pelaaja1.Position = paikka;
571        pelaaja1.Mass = 2.0;
572        pelaaja1.Image = pelaajanKuva;
573        pelaaja1.Tag = "pelaaja";
574        pelaaja1.Destroyed += pelaajaKuoli;
575        AddCollisionHandler(pelaaja1, "dollar", Tormaadollar);
576        AddCollisionHandler(pelaaja1, "jetpack", Tormaajetpack);
577        Add(pelaaja1);
578        AddCollisionHandler(pelaaja1, "p", CollisionHandler.ExplodeBoth(5110, true));
579        AddCollisionHandler(pelaaja1, "maali", paasiMaalin);
580        AddCollisionHandler(pelaaja1, "y", CollisionHandler.ExplodeBoth(9999999, true));
581   
582        pelaaja1.Weapon = new AssaultRifle(30, 10);
583        pelaaja1.Weapon.ProjectileCollision = AmmusOsui;
584        pelaaja1.Weapon.InfiniteAmmo = false;
585        pelaaja1.Weapon.Ammo.Value = 1000;
586        pelaaja1.Weapon.Power.DefaultValue = 400;
587        pelaaja1.Weapon.AmmoIgnoresGravity = true;
588        pelaaja1.Weapon.AmmoIgnoresExplosions = true;
589        pelaaja1.Weapon.CanHitOwner = false;
590        pelaaja1.Weapon.Image = LoadImage("machine gun");
591        pelaaja1.Weapon.Y = 5;
592        pelaaja1.Weapon.FireRate = 200;
593
594        ProgressBar jetpackpalkki = new ProgressBar(150, 20);
595        jetpackpalkki.X = Screen.Right - 150;
596        jetpackpalkki.Y = Screen.Top - 20;
597        jetpackpalkki.BindTo(jetpacklaskuri);
598        jetpackpalkki.BarColor = Color.SkyBlue;
599        Add(jetpackpalkki);
600
601        ProgressBar elamaPalkki = new ProgressBar(150, 20);
602        elamaPalkki.X = Screen.Left + 150;
603        elamaPalkki.Y = Screen.Top - 20;
604        elamaPalkki.BindTo(pelaaja1.ElamaLaskuri);
605        Add(elamaPalkki); 
606    }
607
608    void LisaaNappaimet()
609    {
610        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
611        Keyboard.Listen(Key.Escape, ButtonState.Pressed, avaaKKauppa, "Lopeta peli");
612        Mouse.Listen(MouseButton.Left, ButtonState.Down, AmmuAseella, "Lopeta peli", pelaaja1);
613        Keyboard.Listen(Key.X, ButtonState.Down, Camera.Zoom, "zoom", 1.1);
614        Keyboard.Listen(Key.C, ButtonState.Down, Camera.Zoom, "zoom", 0.1);
615        Keyboard.Listen(Key.E, ButtonState.Pressed, HeitaKranaatti, "heitä kranaatti", pelaaja1);
616        Keyboard.Listen(Key.Q, ButtonState.Pressed, Heitaydinpommi, "heitä ydinpommi", pelaaja1);
617        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -pelaaja1.nopeus);
618        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu oikealle", pelaaja1, pelaaja1.nopeus);
619        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, pelaaja1.hyppyNopeus);
620        Keyboard.Listen(Key.Space, ButtonState.Down, fly, "pelaaja lentää", pelaaja1, flynopeus);
621        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
622        Mouse.Listen(MouseButton.Left, ButtonState.Down, AmmuAseella, "Ammu", pelaaja1);
623
624        //ControllerOne.Listen(Button.A, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
625        //ControllerOne.Listen(Button.D, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
626        //ControllerOne.Listen(Button.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
627
628        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
629
630
631
632        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
633        Keyboard.Listen(Key.Escape, ButtonState.Pressed, avaaKKauppa, "Lopeta peli");
634    //    Keyboard.Listen(Key.P, ButtonState.Down, AmmuAseella, "Lopeta peli", pelaaja2);
635       
636       
637        Keyboard.Listen(Key.L, ButtonState.Down, HeitaKranaatti, "heitä kranaatti", pelaaja2);
638        Keyboard.Listen(Key.M, ButtonState.Down, Heitaydinpommi, "heitä ydinpommi", pelaaja2);
639        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja2, -pelaaja1.nopeus);
640        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu oikealle", pelaaja2, pelaaja1.nopeus);
641        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja2, pelaaja1.hyppyNopeus);
642        Keyboard.Listen(Key.O, ButtonState.Down, fly, "pelaaja lentää", pelaaja2, flynopeus);
643       
644       
645   }
646    void Liikuta(PlatformCharacter hahmo, double nopeus)
647    {
648        hahmo.Walk(nopeus);
649    }
650
651    void Hyppaa(PlatformCharacter hahmo, double nopeus)
652    {
653        hahmo.Jump(nopeus);
654    }
655    void VihuAmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
656    {
657        ammus.Destroy();
658        if (kohde.Tag.ToString() == "pelaaja")
659        {
660            (kohde as Pelihahmo).ElamaLaskuri.Value--;
661        }
662
663        if (kohde is Wife)
664        {
665            (kohde as Wife).ElamaLaskuri.Value--;
666        }
667    }
668    void asevihuOsui(PhysicsObject ammus, PhysicsObject kohde)
669    {
670        ammus.Destroy();
671        if (kohde.Tag == "pelaaja1")
672        {
673            kohde.Destroy();
674        }
675    }
676    void Lisaaasevihu(Vector paikka, double leveys, double korkeus)
677    {
678        Asevihu asevihu = new Asevihu(leveys * 2.0, korkeus * 2.0);
679        asevihu.Position = paikka;
680        asevihu.Image = meksikolainen;
681        Add(asevihu);
682        asevihu.Tag = "A";
683
684        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
685        tasoAivot.Speed = 100;
686
687        tasoAivot.FallsOffPlatforms = true;
688        tasoAivot.TriesToJump = true;
689
690        asevihu.Brain = tasoAivot;
691
692        asevihu.Weapon = new AssaultRifle(30, 10);
693        asevihu.Weapon.ProjectileCollision = VihuAmmusOsui;
694
695        Timer aikaLaskuri = new Timer();
696        aikaLaskuri.Interval = 0.06;
697        aikaLaskuri.Timeout += () => VihuAmmuAseella(asevihu);
698        aikaLaskuri.Start();
699    }
700
701    void LisaaTacoVihu(Vector paikka, double leveys, double korkeus)
702    {
703        Asevihu tacovihu = new Asevihu(leveys * 2.0, korkeus * 2.0);
704        tacovihu.Position = paikka;
705        tacovihu.Image = LoadImage("mexivotacoduude");
706        Add(tacovihu);
707        tacovihu.Tag = "A";
708
709        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
710        tasoAivot.Speed = 100;
711
712        tasoAivot.FallsOffPlatforms = true;
713        tasoAivot.TriesToJump = true;
714
715        tacovihu.Brain = tasoAivot;
716
717        //tacovihu.Weapon = new AssaultRifle(30, 10);
718        //tacovihu.Weapon.ProjectileCollision = VihuAmmusOsui;
719
720        Timer aikaLaskuri = new Timer();
721        aikaLaskuri.Interval = 5.2;
722        aikaLaskuri.Timeout += delegate
723        {
724            Grenade kranu = new Grenade(7.2);
725            kranu.Image = LoadImage("tacobom");
726            tacovihu.Throw(kranu, Angle.FromDegrees(300), 1000);
727
728        };
729        aikaLaskuri.Start();
730
731        tacovihu.Destroyed += aikaLaskuri.Stop;
732    }
733
734    void Tormaadollar(PhysicsObject hahmo, PhysicsObject dollar)
735    {
736        maaliAani.Play();
737        MessageDisplay.Add("Keräsit dollarin!");
738        dollar.Destroy();
739        pisteLaskuri.Value += 352645275;
740    }
741
742    void Tormaajetpack(PhysicsObject hahmo, PhysicsObject jetpack)
743    {
744        maaliAani.Play();
745        MessageDisplay.Add("Keräsit jetpack!");
746        jetpack.Destroy();
747
748        jetpacklaskuri.Value = 100;
749    }
750    void fly(PlatformCharacter hahmo, double nopeus)
751    {
752        if (jetpacklaskuri.Value > 0)
753        {
754            hahmo.Push(new Vector(0, nopeus));
755            jetpacklaskuri.Value -= 0.1;
756        }
757
758    }
759    void wife(Vector paikka, double leveys, double korkeus)
760    {
761        pelaaja2 = new Pelihahmo(leveys * 0.8, korkeus * 3.0);
762        pelaaja2.Position = paikka;
763        pelaaja2.Image = wifekuva;
764        Add(pelaaja2);
765        pelaaja2.Tag = "Q";
766
767
768
769        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
770        tasoAivot.Speed = 100;
771
772        tasoAivot.FallsOffPlatforms = true;
773        tasoAivot.TriesToJump = true;
774
775        //pelaaja2.Brain = tasoAivot;
776
777    }
778       
779
780
781}
Note: See TracBrowser for help on using the repository browser.