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

Revision 5881, 21.2 KB checked in by toolala, 5 years ago (diff)

Poistettiin pelaajalta silmät, jotta näyttää kääntyvän aseen kanssa. Haulikon rangea isonnettu +0.10. Kenttään ~ 3 vihollista lisää.

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