source: 2015/24/OttoR/Last Light/Last Light/Last_Light.cs @ 6078

Revision 6078, 20.9 KB checked in by jotapoti, 4 years ago (diff)

Last Light lisätty

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Last_Light : PhysicsGame
10{
11
12    const double nopeus = 165;
13    const double hyppyNopeus = 850;
14    const int RUUDUN_KOKO = 40;
15    const int ZOMBI_SPAWN_AIKA = 2;
16
17
18
19    PlatformCharacter pelaaja1;
20    GameObject TAHTAIN;
21
22    Direction edellinenKavelysuunta = Direction.Right;
23    IntMeter elamat = new IntMeter(100, 0, 100);
24    IntMeter tappomittari = new IntMeter(0);
25    List<Vector> Zombienpaikat = new List<Vector>();
26
27   
28
29
30    Image puukotuskuva = LoadImage("puukotus");
31    Image[] zombikavely = LoadImages("zombi1", "zombi2");
32    Image pelaajaJump = LoadImage("pelaajaJump");
33    Image pelaajanKuva = LoadImage("pelaaja");
34    Image tahtiKuva = LoadImage("tahti");
35    Image[] pelaajankavely = LoadImages("pelaaja1", "pelaaja2");
36    Image[] pelaajanFall = LoadImages("pelaajaFall1", "pelaajaFall2");
37    Animation pelaajaPutoaa;
38    Image Hiirikuva = LoadImage("TAHTAIN");
39    Image tasokuva = LoadImage("Betoni");
40    Image seinakuva = LoadImage("seina");
41    Image zombikuva = LoadImage("zombi");
42    Image puukkokuva = LoadImage("puukko");
43    Image laatikkokuva = LoadImage("laatikko");
44    Image LootaKuva = LoadImage("LootaKuva");
45    Image alienkuva = LoadImage("alien");
46    Image uzikuva = LoadImage("Uzi");
47    Image luotikuva = LoadImage("ammus");
48    Image TAHTAINkuva = LoadImage("TAHTAIN");
49    Image sydankuva = LoadImage("sydan");
50    Image tappokuva = LoadImage("tapot");
51    Image[] sydanKuvat = LoadImages("sydan", "sydan1", "sydan2","sydan3");
52    Image BearImage = LoadImage("BoomBearLauncher");
53    Image Karhukuva = LoadImage("TNTeddy");
54    Image Rajahdekuva = LoadImage("Rajahdys");
55   
56    PhysicsObject puukko;
57    Label sydamenKuva;
58    AssaultRifle pelaajan1Ase;
59    List<PhysicsObject> laatikkoLista = new List<PhysicsObject>();
60
61    SoundEffect maaliAani = LoadSoundEffect("maali");
62
63    public override void Begin()
64    {
65        Gravity = new Vector(0, -1400);
66        SmoothTextures = false;
67        IsMouseVisible = true;
68
69        LuoKentta();
70        LisaaNappaimet();
71        LisaaElamaLaskuri();
72        LisaaTappoLaskuri();
73        LisaaZombiAjastin();
74
75
76        LisaaHiiriKuva();
77        IsMouseVisible = false;
78        Camera.Follow(pelaaja1);
79        Camera.ZoomFactor = 1.2;
80        Camera.StayInLevel = true;
81
82        Timer esineAjastin = new Timer();
83        esineAjastin.Interval = RandomGen.NextInt(5, 10);
84        esineAjastin.Timeout += delegate
85        {
86            if (laatikkoLista.Count < 5)
87            {
88                esineAjastin.Interval = RandomGen.NextInt(5, 10);
89               
90                PhysicsObject laatikko = new PhysicsObject(RUUDUN_KOKO, RUUDUN_KOKO);
91                laatikko.Position = new Vector(RandomGen.NextDouble(Level.Left, Level.Right), 500);
92                laatikko.Mass = 10.0;
93                laatikko.Image = laatikkokuva;
94                laatikko.Tag = "laatikko";
95                laatikkoLista.Add(laatikko);
96                Add(laatikko);
97            }
98        };
99        esineAjastin.Start();
100    }
101
102    void LuoKentta()
103    {
104        TileMap kentta = TileMap.FromLevelAsset("kentta1");
105        kentta.SetTileMethod('N', LisaaPelaaja);
106        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
107
108        TileMap kentta2 = TileMap.FromLevelAsset("kentta1");
109        kentta2.SetTileMethod('#', LisaaTaso);
110        kentta2.SetTileMethod('*', LisaaTahti);
111        kentta2.SetTileMethod('S', Lisaaseina);
112        kentta2.SetTileMethod('Z', Lisaazombi);
113        kentta2.SetTileMethod('A', LisaaAlien);
114        kentta2.SetTileMethod('L', LisaaLoota);
115        kentta2.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
116       
117        Level.CreateBorders();
118
119
120
121        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
122    }
123    void SpawnaaZombeja()
124    {
125        List<Vector> sopivatPaikat = new List<Vector>();
126
127        foreach (Vector paikka in Zombienpaikat)
128        {
129            if ((pelaaja1.Position - paikka).Magnitude > Screen.Width * 0.5)
130            {
131                sopivatPaikat.Add(paikka);
132            }
133        }
134
135        ZombinLuonti(sopivatPaikat[RandomGen.NextInt(sopivatPaikat.Count)], pelaaja1.Width, pelaaja1.Height);
136
137    }
138    void LisaaZombiAjastin()
139    {
140        Timer Zombiajastin = new Timer();
141        Zombiajastin.Interval = ZOMBI_SPAWN_AIKA;
142        Zombiajastin.Timeout += SpawnaaZombeja;
143        Zombiajastin.Start();
144    }
145    void LisaaHiiriKuva()
146    {
147        TAHTAIN = new GameObject(20, 20);
148        TAHTAIN.Image = TAHTAINkuva;
149        Add(TAHTAIN, 1);
150
151        Mouse.ListenMovement(0.0, LiikutaTAHTAIN, null);
152    }
153 
154
155
156    void LiikutaTAHTAIN(AnalogState Hiiri)
157    {
158        TAHTAIN.Position += Hiiri.MouseMovement;
159
160        //double raja = Camera.ScreenToWorld(new Vector(Window.ClientBounds.Width, Window.ClientBounds.Height)).Y;
161        //Vector suunta = TAHTAIN.Position - pelaaja1.Position;
162        //if (suunta.Magnitude > raja)
163        //{
164          //  TAHTAIN.Position = pelaaja1.Position + suunta.Normalize() * raja;
165        //}
166
167        /*
168        Vector min = Camera.ScreenToWorld(new Vector(Screen.Left, Screen.Bottom));
169        Vector max = Camera.ScreenToWorld(new Vector(Screen.Right, Screen.Top));
170
171        if (TAHTAIN.X < min.X) TAHTAIN.X = min.X;
172        if (TAHTAIN.Y < min.Y) TAHTAIN.X = min.Y;
173        if (TAHTAIN.X > max.X) TAHTAIN.X = max.X;
174        if (TAHTAIN.X > max.Y) TAHTAIN.X = max.Y;
175        */
176    }
177   
178    void LisaaTaso(Vector paikka, double leveys, double korkeus)
179    {
180        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
181        taso.Position = paikka;
182        taso.Image = tasokuva;
183        taso.Tag = "Betoni";
184        Add(taso);
185    }
186
187    void LisaaLoota(Vector paikka, double leveys, double korkeus)
188    {
189        Loota loota = new Loota (leveys, korkeus);
190        loota.Position = paikka;
191        loota.Mass = 20.0;
192        loota.Image = LootaKuva;
193        loota.Tag = "loota";
194        Add(loota);
195    }
196    void Lisaaseina(Vector paikka, double leveys, double korkeus)
197    {
198        Seina seina = new Seina (leveys, korkeus);
199        seina.MakeStatic();
200        seina.Position = paikka;
201        seina.Image = seinakuva;
202        seina.Tag = "seina";
203        Add(seina);
204    }
205
206    void LisaaTahti(Vector paikka, double leveys, double korkeus)
207    {
208        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
209        tahti.IgnoresCollisionResponse = true;
210        tahti.Position = paikka;
211        tahti.Image = tahtiKuva;
212        tahti.Tag = "tahti";
213        Add(tahti);
214    }
215
216    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
217    {
218        pelaaja1 = new PlatformCharacter(leveys - 5, korkeus * 2 - 5);
219        pelaaja1.Position = paikka;
220        pelaaja1.Mass = 20.0;
221        pelaaja1.Image = pelaajanKuva;
222        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
223        pelaaja1.AnimWalk = new Animation(pelaajankavely);
224        pelaaja1.AnimWalk.FPS = 7.5;
225        pelaaja1.AnimIdle = pelaajanKuva;
226       
227        pelaaja1.AnimJump = pelaajaJump;
228        pelaajaPutoaa = new Animation(pelaajanFall);
229        pelaaja1.AnimFall = pelaajaPutoaa;
230        pelaaja1.AnimFall.FPS = 7.5;
231        pelaaja1.LoopFallAnim = true;
232        pelaaja1.CollisionIgnoreGroup = 1;
233        elamat.LowerLimit +=new Action(ElamatLoppu);
234        pelaaja1.DirectionChanged += delegate
235        {
236            if (puukko != null) puukko.MirrorImage();
237        };
238
239        Add(pelaaja1, 1);
240    }
241
242    void LisaaElamaLaskuri()
243    {
244        Label pisteNaytto = new Label();
245        pisteNaytto.X = Screen.Left + 100;
246        pisteNaytto.Y = Screen.Bottom + 100;
247        pisteNaytto.TextColor = Color.Black;
248        pisteNaytto.Color = Color.White;
249       
250       pisteNaytto.BindTo(elamat);
251       Add(pisteNaytto);
252       sydamenKuva = new Label();
253       sydamenKuva.Image = sydankuva;
254       sydamenKuva.X = Screen.Left + 50;
255       sydamenKuva.Y = Screen.Bottom + 100;
256       sydamenKuva.Width = sydankuva.Width *3;
257       sydamenKuva.Height = sydankuva.Height *3;
258       Add(sydamenKuva);
259    }
260
261    void LisaaTappoLaskuri()
262    {
263        Label tapot = new Label();
264        tapot.BindTo(tappomittari);
265        tapot.X = Screen.Left + 200;
266        tapot.Y = Screen.Bottom + 100;
267       
268        Add(tapot);
269
270        Label tapotkuva = new Label();
271        tapotkuva.Image = tappokuva;
272        tapotkuva.Width = sydankuva.Width * 3;
273        tapotkuva.Height = sydankuva.Height * 3;
274        tapotkuva.X = Screen.Left + 155;
275        tapotkuva.Y = Screen.Bottom + 100;
276
277        Add(tapotkuva);
278    }
279
280    void ElamatLoppu()
281    {
282        MessageDisplay.Add("Kuolit");
283        pelaaja1.Destroy();
284    }
285
286    void Lisaazombi(Vector paikka, double leveys, double korkeus)
287    {
288        Zombienpaikat.Add(paikka);
289
290       
291        ZombinLuonti(paikka, leveys, korkeus);
292
293       
294    }
295
296    void ZombinLuonti(Vector paikka, double width, double height)
297    {
298        if (RandomGen.NextInt(100) < 0)
299        {
300            return;
301        }
302
303        Zombi zombi = new Zombi(RUUDUN_KOKO - 5, RUUDUN_KOKO * 1.99 - 5);
304        zombi.Position = paikka;
305        zombi.Mass = 20.0;
306        zombi.Image = zombikuva;
307        zombi.CollisionIgnoreGroup = 1;
308        zombi.CanRotate = false;
309        zombi.Tag = "zombi";
310
311
312        PlatformWandererBrain satunnaisAivot = new PlatformWandererBrain();
313        FollowerBrain seurausaivot = new FollowerBrain(pelaaja1);
314        satunnaisAivot.TriesToJump = true;
315
316
317        //Ominaisuuksien muokkaaminen
318        //satunnaisAivot.ChangeMovementSeconds = 5;
319
320
321        //Aivot käyttöön oliolle
322        zombi.Brain = satunnaisAivot;
323
324
325
326        Timer ajastin = new Timer();
327        ajastin.Interval = RandomGen.NextDouble(1, 2);
328        bool liiku = true;
329        ajastin.Timeout += delegate
330        {
331            if (zombi.IsDestroyed)
332            {
333                ajastin.Stop();
334                tappomittari.Value++;
335                return;
336            }
337
338            ajastin.Interval = RandomGen.NextDouble(1, 4);
339            if (Math.Abs(pelaaja1.Position.X - zombi.Position.X) < 450 && Math.Abs(pelaaja1.Position.Y - zombi.Position.Y) < 170 && !pelaaja1.IsDestroyed)
340            {
341                zombi.Brain = seurausaivot;
342            }
343            else
344            {
345                zombi.Brain = satunnaisAivot;
346                liiku = !liiku;
347                satunnaisAivot.Active = liiku;
348            }
349
350        };
351        ajastin.Start();
352
353        Timer tarkistaOsuma = new Timer();
354        tarkistaOsuma.Interval = 0.5;
355        tarkistaOsuma.Timeout += delegate
356        {
357            if (zombi.IsDestroyed)
358            {
359                tarkistaOsuma.Stop();
360                return;
361            }
362            if (Vector.Distance(zombi.Position, pelaaja1.Position) < RUUDUN_KOKO)
363            {
364                elamat.Value -= 4;
365                if (elamat.Value < 20)
366                {
367                    sydamenKuva.Image = sydanKuvat[3];
368                }
369                else if (elamat.Value < 50)
370                {
371                    sydamenKuva.Image = sydanKuvat[2];
372                }
373                else if (elamat.Value < 70)
374                {
375                    sydamenKuva.Image = sydanKuvat[1];
376                }
377            }
378        };
379        tarkistaOsuma.Start();
380
381
382        zombi.AnimWalk = new Animation(zombikavely);
383        zombi.AnimWalk.FPS = 3.5;
384        zombi.AnimIdle = zombikuva;
385
386        //zombi.AnimJump = pelaajaJump;
387        //zombi.AnimFall = new Animation(zombiFall);
388        //zombi.AnimFall.FPS = 7.5;
389        //zombi.LoopFallAnim = true;
390        Add(zombi);
391    }
392
393    void LisaaAlien(Vector paikka, double leveys, double korkeus)
394    {
395        PlatformCharacter alien = new PlatformCharacter(76, 42);
396        alien.Mass = 10.0;
397        alien.Position = paikka;
398        alien.Image = alienkuva;
399        alien.CollisionIgnoreGroup = 1;
400        alien.CanRotate = false;
401        alien.Tag = "alien";
402        Add(alien);
403}
404
405    void LisaaNappaimet()
406    {
407        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
408        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
409
410        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
411        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
412        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
413
414        Keyboard.Listen(Key.E, ButtonState.Pressed, AvaaLaatikko, "Avaa laatikko");
415
416        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
417
418        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, Käytä, "käyttää esinettä", pelaaja1);
419        Mouse.ListenMovement(0.0, HiirenLiikutus, "tähtää");
420
421        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
422        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
423        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
424
425        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
426    }
427
428    void LuoBoomBear()
429    {
430        Cannon BoomBear = new Cannon(BearImage.Width, BearImage.Height);
431        BoomBear.FireRate = 2.0;
432        BoomBear.Image = BearImage;
433        BoomBear.Size *= 2; 
434        BoomBear.InfiniteAmmo = true;
435        BoomBear.Tag = "BoomBear";
436        pelaaja1.Add(BoomBear);
437        pelaaja1.Weapon = BoomBear;
438    }
439
440    //void AmmuKarhulla(Cannon ase)
441    //{
442    //    PhysicsObject karhu = ase.Shoot();
443
444    //    if (karhu != null)
445    //    {
446    //        karhu.Size *= 3;
447    //        karhu.Image = Karhukuva;
448    //        karhu.MaximumLifetime = TimeSpan.FromSeconds(20.0);
449    //    }
450    //}
451    void KarhuOsui(PhysicsObject karhu, PhysicsObject kohde)
452    {
453        karhu.Destroy();
454       
455    }
456    void Liikuta(PlatformCharacter hahmo, double nopeus)
457    {
458        hahmo.Walk(nopeus);
459    }
460
461    void Hyppaa(PlatformCharacter hahmo, double nopeus)
462    {
463        hahmo.Jump(nopeus);
464    }
465
466    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
467    {
468        maaliAani.Play();
469        MessageDisplay.Add("Keräsit tähden!");
470        tahti.Destroy();
471    }
472
473    void HiirenLiikutus(AnalogState Hiiri)
474    {
475       
476
477        if (pelaaja1.Weapon != null)
478        {
479            pelaaja1.Weapon.AbsoluteAngle = (TAHTAIN.Position - pelaaja1.Position).Angle;
480        }
481    }
482    void Käytä(PlatformCharacter hahmo)
483    {
484        if (elamat.Value == elamat.MinValue)
485        {
486            return;
487        }
488
489        if (pelaaja1.Weapon != null)
490        {
491            PhysicsObject ammus = pelaaja1.Weapon.Shoot();
492           
493            if (ammus != null)
494            {
495                ammus.CollisionIgnoreGroup = 2;
496               
497
498                switch (pelaaja1.Weapon.Tag.ToString())
499                {
500                    case "BoomBear":
501                        ammus.Image = Karhukuva;
502                        ammus.Size *= 2;
503                        ammus.Width = Karhukuva.Width * 2.5;
504                        ammus.Height = Karhukuva.Height * 2.5;
505                        pelaaja1.Weapon.Power.Value = 20500;
506                        AddCollisionHandler(ammus, "zombi", delegate(PhysicsObject a, PhysicsObject v) {
507                            Explosion ex = new Explosion(200);
508                            ex.Position = a.Position;
509                            ex.Image = Rajahdekuva;
510                            ex.ShockwaveColor = Color.Transparent;
511                            v.Destroy();
512                           
513                            Add(ex);
514                            a.Destroy();
515                        });
516                        break;
517
518                    case "Uzi":
519                        ammus.Image = luotikuva;
520                        ammus.Size *= 1;
521                        break;
522                }
523                ammus.MaximumLifetime = TimeSpan.FromSeconds(20.0);
524            }
525           
526        }
527        else if (puukko == null && pelaaja1.Animation != pelaajaPutoaa && pelaaja1.Image != pelaajaJump)
528        {
529            puukko = new PhysicsObject(20, 10);
530            puukko.Image = puukkokuva;
531
532            puukko.IgnoresCollisionResponse = true;
533            puukko.IgnoresGravity = true;
534            AddCollisionHandler(puukko, "zombi", PuukkoOsui);
535            AddCollisionHandler(puukko, "seina", SeinaanOsui);
536            AddCollisionHandler(puukko, "loota", LootaanOsui);
537            if (hahmo.FacingDirection == Direction.Left) puukko.MirrorImage();
538            Add(puukko);
539
540            Animation puukotus = new Animation(puukotuskuva);
541            puukotus.FPS = 1;
542            puukotus.Start(1);
543            pelaaja1.AnimIdle = puukotus;
544
545            Timer.SingleShot(0.3, delegate { pelaaja1.AnimIdle = pelaajanKuva; puukko.Destroy(); });
546
547            Timer ajastin = new Timer();
548            ajastin.Interval = 0.01;
549            ajastin.Timeout += delegate
550            {
551                if (puukko.IsDestroyed)
552                {
553                    ajastin.Stop();
554                    puukko = null;
555                    return;
556                }
557                puukko.Position = hahmo.Position + hahmo.FacingDirection.GetVector() * 22;
558
559            };
560            ajastin.Start();
561        }
562    }
563
564    void PuukkoOsui(PhysicsObject puukko, PhysicsObject vihu)
565    {
566        Zombi zombi = (Zombi)vihu;
567        zombi.ElamaLaskuri.Value -= 4.5;
568
569       
570    }
571    void SeinaanOsui(PhysicsObject puukko, PhysicsObject kohdeseina)
572    {
573        Seina seina = (Seina)kohdeseina;
574        seina.ElamaLaskuri.Value -= 4;
575    }
576
577    void LootaanOsui(PhysicsObject puukko, PhysicsObject kohdeloota)
578    {
579        Loota loota = (Loota)kohdeloota;
580        loota.ElamaLaskuri.Value -= 4;
581   
582    }
583    void AvaaLaatikko()
584    {
585        PhysicsObject lahinLaatikko = null;
586
587        foreach (PhysicsObject laatikko in laatikkoLista)
588        {
589            if (Vector.Distance(pelaaja1.Position, laatikko.Position) < 65) lahinLaatikko = laatikko;
590        }
591
592        if (lahinLaatikko != null)
593        {
594            lahinLaatikko.Destroy();
595            laatikkoLista.Remove(lahinLaatikko);
596            PoimiAse();
597        }
598    }
599
600    void PoimiAse()
601    {
602        if (pelaaja1.Weapon != null)
603        {
604            //pelaajan1Ase.Destroy();
605            pelaaja1.Weapon.Destroy();
606        }
607
608
609        if (RandomGen.NextInt(0, 100) > 50)
610        {
611            LuoBoomBear();
612        }
613        else
614        {
615            LuoUzi();
616
617        }         
618    }
619
620    void LuoUzi()
621    {
622        pelaajan1Ase = new AssaultRifle(23, 20);
623        pelaajan1Ase.InfiniteAmmo = true;
624        pelaajan1Ase.ProjectileCollision = AmmusOsui;
625        pelaaja1.Add(pelaajan1Ase);
626        pelaaja1.Weapon = pelaajan1Ase;
627        pelaajan1Ase.Tag = "Uzi";
628        pelaajan1Ase.Image = uzikuva;
629    }
630    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
631    {
632        ammus.Destroy();
633
634        if (kohde is Seina)
635        {
636            Seina seina = (Seina)kohde;
637            seina.ElamaLaskuri.Value -= 5.0;
638
639       
640        }
641        if (kohde is Zombi)
642        {
643            Zombi zombi = (Zombi)kohde;
644            zombi.ElamaLaskuri.Value -= 5.0;
645        }
646           
647   
648        if (kohde is Loota)
649        {
650        Loota loota = (Loota)kohde;
651        loota.ElamaLaskuri.Value -= 5.0;
652       
653        }
654
655
656}
657
658
659class Zombi : PlatformCharacter
660{
661    private DoubleMeter elamaLaskuri = new DoubleMeter(15, 0, 15);
662    public DoubleMeter ElamaLaskuri { get { return elamaLaskuri; } }
663
664    public Zombi(double leveys, double korkeus)
665        : base(leveys, korkeus)
666    {
667        elamaLaskuri.LowerLimit += delegate { this.Destroy(); };
668    }
669
670 
671}
672class Seina : PhysicsObject
673{
674    private DoubleMeter elamaLaskuri = new DoubleMeter(25, 0, 25);
675    public DoubleMeter ElamaLaskuri { get { return elamaLaskuri; } }
676
677    public Seina(double leveys, double korkeus)
678        : base(leveys, korkeus)
679    {
680        elamaLaskuri.LowerLimit += delegate { this.Destroy(); };
681    }
682}
683class Loota : PhysicsObject
684{
685    private DoubleMeter elamaLaskuri = new DoubleMeter(20, 0, 20);
686    public DoubleMeter ElamaLaskuri { get { return elamaLaskuri; } }
687
688    public Loota(double leveys, double korkeus)
689        : base(leveys, korkeus)
690    {
691        elamaLaskuri.LowerLimit += delegate { this.Destroy(); };
692    }
693
694}
695
696}
697
698
699
Note: See TracBrowser for help on using the repository browser.