source: 2015/23/ToukoA/HotlineVihti/FatalShot/FatalShot/FatalShot.cs @ 5876

Revision 5876, 21.1 KB checked in by toolala, 4 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 HotlineVihti : PhysicsGame
10{
11    Hyvis pelaaja1;
12    Image pelaajawithkalashnikov = LoadImage ("pelaajawithkalashnikov");
13
14    IntMeter haulit;
15
16    Image pelaajanKuva = LoadImage ("pelaajav1");
17    Image poliisiAmpuuKuva = LoadImage ("pelaajav1");
18        Image poliisinKuva = LoadImage ("pelaajav1");
19    Image mp5 = LoadImage ("mp5");
20    Image pistooli = LoadImage ("pistooli");
21    Image haulikko = LoadImage ("shotgun");
22    Image kalashnikov = LoadImage ("kalashnikov");
23    Image veriLantti = LoadImage ("verilantti");
24    Vector nopeusYlos = new Vector(0, 500);
25    Vector nopeusAlas = new Vector(0, -500);
26    Vector nopeusOikea = new Vector(500, 0);
27    Vector nopeusVasen = new Vector(-500, 0);
28    AssaultRifle pelaajan1Ase;
29    AssaultRifle pelaajan1Ase2;
30    AssaultRifle pelaajan1Ase3;
31    bool pelikaynnissa = true;
32    bool rekyyliOn = true;
33    //bool akkadessa = true;
34    Timer rekyylitimer = new Timer();
35    PhysicsObject asetrigger;
36
37    //bool vaihdettujo = false;
38
39    int ammokalashnikov = 24;
40    int ammomp5 = 30;
41    //int ammo2value = 150;
42    bool haulikkovalmiina = true;
43    bool haulikkorekyyli = false;
44    int ruudunKoko = 40;
45
46    public override void Begin()
47    {
48
49        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
50
51        TileMap kentta = TileMap.FromLevelAsset("kentta");
52        Level.Background.Color = Color.Gray;
53        kentta.SetTileMethod('%', luoPelaaja);
54        kentta.SetTileMethod('#', lisaaTaso1);
55       
56        kentta.Execute(ruudunKoko, ruudunKoko);
57
58        TileMap kentta2 = TileMap.FromLevelAsset("kentta");
59        kentta2.SetTileMethod('&', luoPahis);
60        kentta2.SetTileMethod('H', VaihdaAse);
61        kentta2.SetTileMethod('/', VaihdaAse2);
62        kentta2.SetTileMethod('¤', VaihdaAse3);
63        kentta2.Execute(ruudunKoko, ruudunKoko);
64
65        Mouse.Listen(MouseButton.Left, ButtonState.Down, Ammu, "Ammu", pelaajan1Ase);
66        Mouse.Listen(MouseButton.Left, ButtonState.Down, Ammu3, null, pelaajan1Ase3);
67        Mouse.Listen(MouseButton.Left, ButtonState.Down, Ammu2, null, pelaajan1Ase2);
68        Mouse.Listen(MouseButton.Left, ButtonState.Released, delegate { Camera.FollowOffset = new Vector(0.0, 0.0); }, "");
69        Mouse.Listen(MouseButton.Left, ButtonState.Down, rekyyli, "");
70
71        //Mouse.Listen(MouseButton.Middle, ButtonState.Pressed, VaihdaAse, "Vaihda ase");
72        //delegate { { rekyylitimer.Start(); } }
73
74        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
75        Keyboard.Listen(Key.W, ButtonState.Down, liikutaP, "Liiku ylos", pelaaja1, nopeusYlos);
76        Keyboard.Listen(Key.S, ButtonState.Down, liikutaP, "Liiku alas", pelaaja1, nopeusAlas);
77        Keyboard.Listen(Key.W, ButtonState.Released, liikutaP, null, pelaaja1, Vector.Zero);
78        Keyboard.Listen(Key.S, ButtonState.Released, liikutaP, null, pelaaja1, Vector.Zero);
79
80        Keyboard.Listen(Key.D, ButtonState.Down, liikutaP, "Liiku oikealle", pelaaja1, nopeusOikea);
81        Keyboard.Listen(Key.D, ButtonState.Released, liikutaP, null, pelaaja1, Vector.Zero);
82
83        Keyboard.Listen(Key.A, ButtonState.Down, liikutaP, "Liiku vasemmalle", pelaaja1, nopeusVasen);
84        Keyboard.Listen(Key.A, ButtonState.Released, liikutaP, null, pelaaja1, Vector.Zero);
85
86        Keyboard.Listen(Key.R, ButtonState.Pressed, aloitaAlusta, "Aloita alusta");
87
88        haulit = new IntMeter(12);
89        haulit.Value = 40;
90
91
92        Timer hauliajastin = new Timer();
93        hauliajastin.Interval = 1.1;
94        hauliajastin.Timeout += delegate()
95        {
96            haulikkovalmiina = true;
97        };
98
99        hauliajastin.Start();
100
101        rekyylitimer.Interval = 0.1;
102        rekyylitimer.Timeout += rekyyli; 
103            //delegate()
104        //{
105            //if (pelaaja1.Ase2.IsAddedToGame && pelaajan1Ase2.Ammo > 1)
106            //{
107            //    Camera.FollowOffset = Vector.FromLengthAndAngle(10.0, -pelaajan1Ase2.Angle);
108
109            //    Timer rekyylivaihtotimer = new Timer();
110            //    rekyylivaihtotimer.Interval = 0.1;
111            //    rekyylivaihtotimer.Timeout += delegate()
112            //    {
113            //        Camera.FollowOffset = new Vector(0.0, 0.0);
114            //    };
115            //    rekyylivaihtotimer.Start(1);
116            //}
117
118            //if (pelaaja1.Ase3.IsAddedToGame && pelaajan1Ase3.Ammo > 1)
119            //{
120            //    Camera.X += 2;
121            //    Camera.Y += 2;
122            //}
123
124            //if (pelaaja1.Ase.IsAddedToGame && pelaajan1Ase.Ammo > 1)
125            //{
126
127            //}
128        //};
129
130        Mouse.ListenMovement(0.1, Tahtaa, "Tähtää");
131        Camera.ZoomFactor = 1.4;
132        Mouse.IsCursorVisible = true;
133        Camera.Follow(pelaaja1);
134    }
135
136    void rekyyli()
137    {
138        if (pelaaja1.Ase2.IsAddedToGame && pelaajan1Ase2.Ammo > 1)
139        {
140            if (rekyyliOn)
141            {
142                //Camera.FollowOffset = Vector.FromLengthAndAngle(50.0, -pelaajan1Ase2.Angle);
143                Camera.Position = pelaaja1.Position + Vector.FromLengthAndAngle(60.0, -pelaajan1Ase2.Angle);
144                rekyyliOn = false;
145
146                Timer rekyylivaihtotimer = new Timer();
147                rekyylivaihtotimer.Interval = 0.1;
148                rekyylivaihtotimer.Timeout += delegate()
149                {
150                    //Camera.FollowOffset = Vector.FromLengthAndAngle(25.0, pelaajan1Ase2.Angle);
151                    Camera.Position = pelaaja1.Position + Vector.FromLengthAndAngle(25.0, pelaajan1Ase2.Angle);
152                    rekyyliOn = true;
153                };
154                rekyylivaihtotimer.Start(1);
155            }
156        }
157
158        if (pelaaja1.Ase3.IsAddedToGame && pelaajan1Ase3.Ammo > 1)
159        {
160            if (rekyyliOn)
161            {
162                //Camera.FollowOffset = Vector.FromLengthAndAngle(50.0, -pelaajan1Ase2.Angle);
163                Camera.Position = pelaaja1.Position + Vector.FromLengthAndAngle(20.0, -pelaajan1Ase2.Angle);
164                rekyyliOn = false;
165
166                Timer rekyylivaihtotimer = new Timer();
167                rekyylivaihtotimer.Interval = 0.1;
168                rekyylivaihtotimer.Timeout += delegate()
169                {
170                    //Camera.FollowOffset = Vector.FromLengthAndAngle(25.0, pelaajan1Ase2.Angle);
171                    Camera.Position = pelaaja1.Position + Vector.FromLengthAndAngle(15.0, pelaajan1Ase2.Angle);
172                    rekyyliOn = true;
173                };
174                rekyylivaihtotimer.Start(1);
175            }
176        }
177
178        if (pelaaja1.Ase.IsAddedToGame && haulit.Value > 1)
179        {
180            if (rekyyliOn && haulikkorekyyli)
181            {
182                //Camera.FollowOffset = Vector.FromLengthAndAngle(50.0, -pelaajan1Ase2.Angle);
183                Camera.Position = pelaaja1.Position + Vector.FromLengthAndAngle(20.0, -pelaajan1Ase2.Angle);
184                rekyyliOn = false;
185
186                Timer rekyylivaihtotimer = new Timer();
187                rekyylivaihtotimer.Interval = 0.1;
188                rekyylivaihtotimer.Timeout += delegate()
189                {
190                    //Camera.FollowOffset = Vector.FromLengthAndAngle(25.0, pelaajan1Ase2.Angle);
191                    Camera.Position = pelaaja1.Position + Vector.FromLengthAndAngle(15.0, pelaajan1Ase2.Angle);
192                    rekyyliOn = true;
193                    haulikkorekyyli = false;
194                };
195                rekyylivaihtotimer.Start(1);
196            }
197        }
198    }
199    void VaihdaAse(Vector paikka, double leveys, double korkeus)
200    {
201        LisaaAseTrigger(paikka, leveys, korkeus, "ase", haulikko);
202    }
203
204    void VaihdaAse2(Vector paikka, double leveys, double korkeus)
205    {
206        LisaaAseTrigger(paikka, leveys * 2, korkeus * 2, "ase2", kalashnikov);
207    }
208
209    void VaihdaAse3(Vector paikka, double leveys, double korkeus)
210    {
211        LisaaAseTrigger(paikka, leveys, korkeus, "ase3", mp5);
212    }
213
214    void LisaaAseTrigger(Vector paikka, double leveys, double korkeus, string tagiNimi, Image kuva)
215    {
216        asetrigger = PhysicsObject.CreateStaticObject(20, 20);
217        asetrigger.IgnoresCollisionResponse = true;
218        asetrigger.IgnoresPhysicsLogics = true;
219        asetrigger.CollisionIgnoreGroup = 0;
220        asetrigger.Tag = tagiNimi;
221        asetrigger.Position = paikka;
222        asetrigger.Image = kuva;
223        Add(asetrigger, -3);
224
225
226       
227    }
228
229    void aloitaAlusta()
230    {
231        pelikaynnissa = true;
232        ClearAll();
233        Begin();
234       
235        //vaihdettujo = false;
236    }
237
238    /*void rekyyli()
239    {
240        rekyylitimer = new Timer();
241        rekyylitimer.Interval = 0.1;
242        rekyylitimer.Timeout += delegate()
243        {
244            Camera.X += 1;
245            Camera.Y += 1;
246            rekyylitimer.Stop();
247        };
248
249        rekyylitimer.Start();
250    }*/
251
252    void Ammu3(AssaultRifle ase3)
253    {
254        PhysicsObject ammus = ase3.Shoot();
255
256        //for (int i = 0; i < 10; i++)
257        //{
258        //    rekyyli();
259        //}
260
261
262        if (ammus != null)
263        {
264            ammus.CollisionIgnoreGroup = 3;
265            ase3.Power.DefaultValue = 450;
266            ase3.FireRate = 10;
267            ammus.Size *= 0.45;
268        }
269    }
270
271
272
273    void Ammu(AssaultRifle ase)
274    {
275        if (haulikkovalmiina && pelikaynnissa && haulit.Value > 7)
276        {
277            for (int i = 0; i < 6; i++)
278            {
279                PhysicsObject hauli = new PhysicsObject(2, 2);
280                hauli.Shape = Shape.Ellipse;
281                hauli.Color = Color.Yellow;
282                hauli.Position = pelaaja1.Position;
283                //Vector suunta = (Mouse.PositionOnWorld - pelaajan1Ase.AbsolutePosition);
284                Vector impulssi = Vector.FromLengthAndAngle(70000, (pelaajan1Ase.Angle + (RandomGen.NextAngle(Angle.FromDegrees(-25), Angle.FromDegrees(25)))));
285                //hauli.Angle = RandomGen.NextAngle(Angle.FromDegrees(-45), Angle.FromDegrees(45));
286                Add(hauli);
287
288                hauli.MaximumLifetime = TimeSpan.FromSeconds(0.22);
289                AddCollisionHandler(hauli, "paha", AmmusOsui2);
290                AddCollisionHandler(hauli, "seina", CollisionHandler.DestroyObject);
291
292                hauli.CollisionIgnoreGroup = 3;
293
294                hauli.Push(impulssi);
295                haulikkovalmiina = false;
296                haulikkorekyyli = true;
297                haulit.Value -= 1;
298            }
299        }
300
301    }
302
303    void Ammu2(AssaultRifle ase2)
304    {
305        PhysicsObject ammus = ase2.Shoot();
306       
307        //for (int i = 0; i < 10; i++)
308        //{
309        //    rekyyli();
310        //}
311
312        if (ammus != null)
313        {
314            ase2.Power.DefaultValue = 250;
315            ase2.FireRate = 5;
316            ammus.Size *= 0.65;
317            ammus.CollisionIgnoreGroup = 3;
318        }
319    }
320
321    void lisaaTaso1(Vector paikka, double leveys, double korkeus)
322    {
323        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
324        taso.Position = paikka;
325        taso.Color = Color.Cyan;
326        taso.KineticFriction = 0;
327        taso.Tag = "seina";
328        Add(taso);
329    }
330
331    void luoPelaaja(Vector paikka, double leveys, double korkeus)
332    {
333        pelaaja1 = new Hyvis(leveys * 0.5, korkeus * 0.5);
334        pelaaja1.Position = paikka;
335        pelaaja1.Image = pelaajanKuva;
336        pelaaja1.Shape = Shape.Octagon;
337        pelaaja1.Restitution = 0;
338        pelaaja1.CanRotate = false; ;
339        pelaaja1.Tag = "hyva";
340
341        pelaajan1Ase2 = new AssaultRifle(30, 10);
342        pelaajan1Ase2.Ammo.Value = ammokalashnikov;
343        pelaajan1Ase2.ProjectileCollision = AmmusOsui;
344        pelaajan1Ase2.Image = kalashnikov;
345        //pelaaja1.Aseet.Add(pelaajan1Ase2);
346       
347       
348
349        pelaajan1Ase = new AssaultRifle(30, 10);
350        pelaajan1Ase.ProjectileCollision = AmmusOsui2;
351        pelaajan1Ase.Image = haulikko;
352        //pelaaja1.Aseet.Add(pelaajan1Ase);
353        //pelaajan1Ase.X -= 8;
354
355        pelaajan1Ase3 = new AssaultRifle(32, 12);
356        pelaajan1Ase3.Ammo.Value = ammomp5;
357        pelaajan1Ase3.ProjectileCollision = AmmusOsui3;
358        pelaajan1Ase3.Image = mp5;
359
360
361        pelaaja1.CollisionIgnoreGroup = 3;
362        //pelaaja1.Aseet.Add(pelaajan1Ase3);
363
364        AddCollisionHandler(pelaaja1, "ase", ase);
365
366        AddCollisionHandler(pelaaja1, "ase2", ase2);
367
368        AddCollisionHandler(pelaaja1, "ase3", ase3);
369
370        pelaaja1.Add(pelaajan1Ase3);
371
372        pelikaynnissa = false;
373
374        Mouse.ListenMovement(0.1, Tahtaa, "Tähtää");
375
376        pelaaja1.Ase = pelaajan1Ase;
377        pelaaja1.Ase2 = pelaajan1Ase2;
378        pelaaja1.Ase3 = pelaajan1Ase3;
379
380        Add(pelaaja1);
381
382    }
383
384    void ase(PhysicsObject pelaaja1, PhysicsObject ase)
385    {
386        pelaaja1.Remove(pelaajan1Ase3);
387        pelaaja1.Remove(pelaajan1Ase2);
388
389        pelaaja1.Add(pelaajan1Ase);
390
391        haulit.Value = 40;
392
393        Mouse.ListenMovement(0.1, Tahtaa, "Tähtää");
394
395        ase.Destroy();
396
397        pelikaynnissa = true;
398    }
399
400    void ase2(PhysicsObject pelaaja1, PhysicsObject ase2)
401    {
402        pelaaja1.Remove(pelaajan1Ase);
403        pelaaja1.Remove(pelaajan1Ase3);
404        pelaaja1.Remove(pelaajan1Ase2);
405
406        pelaaja1.Add(pelaajan1Ase2);
407
408        pelaajan1Ase2.Ammo.Value = ammokalashnikov;
409
410        //pelaajan1Ase.Ammo.Value = ammo;
411
412        ase2.Destroy();
413       
414
415        Mouse.ListenMovement(0.1, Tahtaa, "Tähtää");
416    }
417
418    void ase3(PhysicsObject pelaaja1, PhysicsObject ase3)
419    {
420        pelaaja1.Remove(pelaajan1Ase);
421        pelaaja1.Remove(pelaajan1Ase2);
422        pelaaja1.Remove(pelaajan1Ase3);
423
424        pelaaja1.Add(pelaajan1Ase3);
425
426        pelikaynnissa = false;
427
428        pelaajan1Ase3.Ammo.Value = 30;
429
430        ase3.Destroy();
431
432        Mouse.ListenMovement(0.1, Tahtaa, "Tähtää");
433    }
434
435    void luoPahis(Vector paikka, double leveys, double korkeus)
436    {
437        Pahis pahis = new Pahis(leveys * 0.6, korkeus * 0.6, veriLantti, mp5);
438        pahis.Position = paikka;
439        pahis.Image = pelaajanKuva;
440        pahis.Shape = Shape.Octagon;
441
442        FollowerBrain seuraajaAivot = new FollowerBrain(pelaaja1);
443        RandomMoverBrain randomAivot = new RandomMoverBrain();
444        randomAivot.ChangeMovementSeconds = 3;
445
446        AssaultRifle pahisAse = new AssaultRifle(30, 10);
447        pahisAse.Ammo.Value = 100;
448        pahisAse.ProjectileCollision = PahisAmmusOsui;
449        pahisAse.InfiniteAmmo = true;
450        pahis.Ase = pahisAse;
451        pahis.Tag = "paha";
452        pahis.Add(pahisAse);
453
454        AddCollisionHandler(pahis, seinatormays);
455
456        pahis.Brain = seuraajaAivot;
457        seuraajaAivot.Active = true;
458        seuraajaAivot.Speed = 500;
459        seuraajaAivot.DistanceClose = 150;
460        seuraajaAivot.DistanceFar = 250;
461
462        randomAivot.Speed = 500;
463
464        LabyrinthWandererBrain labyrinttiAivot = new LabyrinthWandererBrain(ruudunKoko);
465        labyrinttiAivot.Speed = 100.0;
466        labyrinttiAivot.LabyrinthWallTag = "seina";
467
468        seuraajaAivot.FarBrain = labyrinttiAivot;
469        seuraajaAivot.TargetClose += delegate { pahisAmpuu(pahisAse, pahis); };
470        seuraajaAivot.StopWhenTargetClose = true;
471        pahis.CollisionIgnoreGroup = 1;
472
473        Add(pahis);
474
475    }
476
477    void seinatormays(PhysicsObject pahis, PhysicsObject kohde)
478    {
479        //Vector impulssi = new Vector(500.0, 500.0);
480        //pahis.Hit(impulssi);
481    }
482
483    void pahisAmpuu(AssaultRifle ase, Pahis pahis)
484    {
485        Vector suunta = (pelaaja1.Position - pahis.Position).Normalize();
486
487        if (pelaaja1.Velocity == Vector.Zero)
488        {
489            pahis.Angle = suunta.Angle;
490        }
491        else
492        { 
493            pahis.Angle = suunta.Angle * 1.1;
494        }
495           
496
497
498        PhysicsObject ammus = ase.Shoot();
499
500        if (ammus != null)
501        {
502            ase.Power.DefaultValue = 300;
503            ase.FireRate = 5;
504            ase.CanHitOwner = false;
505            ammus.Size *= 0.45;
506            ammus.MaximumLifetime = TimeSpan.FromSeconds(4);
507            ammus.CollisionIgnoreGroup = 1;
508        }
509    }
510
511    void Tahtaa(AnalogState hiirenLiike)
512    {
513       
514        Vector suunta = (Mouse.PositionOnWorld - pelaajan1Ase.AbsolutePosition).Normalize();
515        pelaajan1Ase.Angle = suunta.Angle;
516
517        Vector suunta2 = (Mouse.PositionOnWorld - pelaajan1Ase2.AbsolutePosition).Normalize();
518        pelaajan1Ase2.Angle = suunta2.Angle;
519
520        Vector suunta3 = (Mouse.PositionOnWorld - pelaajan1Ase3.AbsolutePosition).Normalize();
521        pelaajan1Ase3.Angle = suunta3.Angle; 
522       
523        /*foreach (Weapon ase in pelaaja1.Aseet)
524        {
525            Vector suunta = (Mouse.PositionOnWorld - ase.AbsolutePosition).Normalize();
526            ase.Angle = suunta.Angle;
527        }*/
528    }
529
530    void AmmusOsui2(PhysicsObject hauli, PhysicsObject kohde)
531    {
532        if (kohde.Tag.Equals("paha") || kohde.Tag.Equals("seina"))
533        {
534            hauli.Destroy();
535        }
536        if (kohde.Tag.Equals("paha"))
537        {
538            LisaaAseTrigger(kohde.Position, ruudunKoko, ruudunKoko, "ase3", mp5);
539
540           
541
542            GameObject verilantti = new GameObject(30, 30);
543            verilantti.Position = kohde.Position;
544            verilantti.Image = veriLantti;
545            Add(verilantti, -3);
546
547            //verilantti.MaxVelocity = 0;
548            //verilantti.CollisionIgnoreGroup = 1;
549            //verilantti.IgnoresCollisionResponse = true;
550
551            (kohde as Pahis).ElamaLaskuri.Value -= 3;
552           
553        }
554
555        if (kohde.Tag.Equals("hyva"))
556        {
557            (kohde as Hyvis).Ase.Destroy();
558            (kohde as Hyvis).Ase2.Destroy();
559            (kohde as Hyvis).Ase3.Destroy();
560            (kohde as Hyvis).Destroy();
561            pelikaynnissa = false;
562        }
563       
564    }
565
566    void AmmusOsui3( PhysicsObject ammus, PhysicsObject kohde)
567    {
568        if (kohde.Tag.Equals("paha") || kohde.Tag.Equals("seina"))
569        {
570            ammus.Destroy();
571        }
572       
573        if (kohde.Tag.Equals("paha"))
574        {
575
576            //LisaaAseTrigger(kohde.Position, ruudunKoko, ruudunKoko, "ase3", mp5);
577
578            Explosion rajahdys = new Explosion(5000);
579            rajahdys.Image = veriLantti;
580            rajahdys.MaxRadius = 70;
581            rajahdys.Force = 100;
582            rajahdys.Speed = 100;
583            rajahdys.Position = kohde.Position + new Vector(3, 0);
584            rajahdys.ShockwaveColor = new Color(10, 0, 0, 0);
585            Add(rajahdys);
586
587            GameObject verilantti = new GameObject(30, 30);
588            verilantti.Position = kohde.Position;
589            verilantti.Image = veriLantti;
590            Add(verilantti, -3);
591
592            //verilantti.MaxVelocity = 0;
593            //verilantti.CollisionIgnoreGroup = 1;
594            //verilantti.IgnoresCollisionResponse = true;
595
596            (kohde as Pahis).ElamaLaskuri.Value -= 1;
597        }
598
599    }
600
601    void PahisAmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
602    {
603        if (kohde.Tag.Equals("hyva") || kohde.Tag.Equals("seina"))
604        {
605            ammus.Destroy();
606        }
607        if (kohde.Tag.Equals("hyva"))
608        {
609            (kohde as Hyvis).Ase.Destroy();
610            (kohde as Hyvis).Ase2.Destroy();
611            (kohde as Hyvis).Ase3.Destroy();
612            (kohde as Hyvis).Destroy();
613            pelikaynnissa = false;
614        }
615    }
616
617    void AmmusOsui( PhysicsObject ammus, PhysicsObject kohde)
618    {
619        if (kohde.Tag.Equals("paha") || kohde.Tag.Equals("seina"))
620        {
621            ammus.Destroy();
622        }
623        if (kohde.Tag.Equals("paha"))
624        {
625
626            //LisaaAseTrigger(kohde.Position, ruudunKoko, ruudunKoko, "ase3", mp5);
627
628            Explosion rajahdys = new Explosion(5000);
629            rajahdys.Image = veriLantti;
630            rajahdys.MaxRadius = 70;
631            rajahdys.Force = 100;
632            rajahdys.Speed = 100;
633            rajahdys.Position = kohde.Position + new Vector(3, 0);
634            rajahdys.ShockwaveColor = new Color(10, 0, 0, 0);
635            Add(rajahdys);
636
637            GameObject verilantti = new GameObject(30, 30);
638            verilantti.Position = kohde.Position;
639            verilantti.Image = veriLantti;
640            Add(verilantti, -3);
641
642            //verilantti.MaxVelocity = 0;
643            //verilantti.CollisionIgnoreGroup = 1;
644            //verilantti.IgnoresCollisionResponse = true;
645
646            (kohde as Pahis).ElamaLaskuri.Value -= 3;
647        }
648
649    }
650
651    void liikutaP(PhysicsObject pelaaja1, Vector nopeus)
652    {
653        if ((nopeus.Y < 0) && (pelaaja1.Bottom < Level.Bottom))
654        {
655            pelaaja1.Velocity = Vector.Zero;
656            return;
657        }
658
659        if ((nopeus.Y > 0) && (pelaaja1.Top > Level.Top))
660        {
661            pelaaja1.Velocity = Vector.Zero;
662            return;
663        }
664        pelaaja1.Velocity = nopeus;
665    }
666}
Note: See TracBrowser for help on using the repository browser.