source: 2015/30/ArttuH/TasoHyppely/TasoHyppely/TasoHyppely/TasoHyppely.cs @ 7022

Revision 7022, 19.3 KB checked in by arjuhoyl, 4 years ago (diff)

Peli valmis

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8/// <summary>
9/// tasohyppyy
10/// </summary>
11
12public class TasoHyppely : PhysicsGame
13{
14    const double nopeus = 200;
15    const double hyppyNopeus = 750;
16    const int RUUDUN_KOKO = 40;
17    double ammusnopeus2 = 3000;
18    double ammusnopeus1 = 1300;
19    double pahisNopeus = 100;
20    double Painovoima = -1000;
21    double pelaajaMassa = 4.0;
22    double pelaajan1_ase_nopeus = 10;
23    double ase_X = 20.0;
24    double ase_Y = -10.0;
25    double pelaajan_nopeus = 300.0;
26    double pistelaskurin_X = 100;
27    double pistelaskurin_Y = 100;
28    double pelaajan1_Luoti_laskuri_X = 190;
29    double pelaajan1_Luoti_laskuri_Y = 100;
30    double pelaajan2_Luoti_laskuri_X = 190;
31    double pelaajan2_Luoti_laskuri_Y = 180;
32    double pelaajan1_luodin_massa = 100;
33    double pelaajan2_luodin_massa = 200;
34
35    bool pelaaja1ampuu = false;
36    bool pelaaja2ampuu = false;
37
38    List<PlatformCharacter> pelaajaLista = new List<PlatformCharacter>();
39
40    PlatformCharacter pelaaja1;
41    PlatformCharacter pelaaja2;
42    IntMeter pisteLaskuri;
43    IntMeter luotilaskuri;
44    IntMeter luotilaskuri2;
45    IntMeter elamalaskuri;
46    IntMeter elamalaskuri2;
47    int pelaajienMaara;
48    int kenttaNro = 1;
49    int kenttaMaara = 6;
50
51    Image asekuva = LoadImage("asekuva");
52    Image asekuva2 = LoadImage("asekuva_2");
53    Image pelaajanKuva1 = LoadImage("ukko");
54    Image pelaajanKuva2 = LoadImage("toinenukko");
55    Image tahtiKuva = LoadImage("suklaa");
56    Image luoti = LoadImage("luoti");
57    Image piikkikuva = LoadImage("piikki");
58    Image orkki = LoadImage("orkki");
59    Image orkki2 = LoadImage("pahis2");
60    Image ammuspakettiKuva = LoadImage("ammobox");
61    Image taustakuva = LoadImage("taustakuva");
62    Image ruoho = LoadImage("ruoho");
63    private Animation pelihahmo1;
64    private Animation pelihahmo2;
65    SoundEffect maaliAani = LoadSoundEffect("Pickup_Coin21");
66
67    public override void Begin()
68    {
69        Paavalikko();
70    }
71
72    void LuoKentta(int pelaajienMaara)
73    {
74        ClearAll();
75        MediaPlayer.Play("LevelUp");
76        Gravity = new Vector(0, Painovoima);
77        TileMap kentta = TileMap.FromLevelAsset("Kentta" + kenttaNro);
78        kentta.SetTileMethod('#', LisaaTaso);
79        kentta.SetTileMethod('*', LisaaTahti);
80        kentta.SetTileMethod('1', LisaaPelaaja);
81        kentta.SetTileMethod('X', Piikki);
82        kentta.SetTileMethod('A', Ammuspaketti);
83        kentta.SetTileMethod('P', LisaaPahis);
84        kentta.SetTileMethod('B', LisaaPahis2);
85        kentta.SetTileMethod('M', LuoMaali);
86        kentta.SetTileMethod('H', Healthback);
87        Level.Background.Image = taustakuva;
88        if (pelaajienMaara == 2)
89        {
90            kentta.SetTileMethod('2', LisaaPelaaja2);
91        }
92        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
93        Level.CreateBorders();
94
95        //Camera.StayInLevel = true;
96
97        LisaaOhjaimet();
98        Camera.Follow(pelaaja1);
99        if (pelaajienMaara == 2)
100        {
101            Camera.Follow(pelaaja1, pelaaja2);
102            Luotilaskuri2();
103
104        }
105        LuoPistelaskuri();
106        Luotilaskuri();
107    }
108
109    void LisaaTaso(Vector paikka, double leveys, double korkeus)
110    {
111        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
112        taso.Position = paikka;
113        taso.Image = ruoho;
114        Add(taso);
115    }
116
117    void LisaaTahti(Vector paikka, double leveys, double korkeus)
118    {
119        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
120        tahti.IgnoresCollisionResponse = true;
121        tahti.Position = paikka;
122        tahti.Image = tahtiKuva;
123        tahti.Tag = "tahti";
124        Add(tahti);
125    }
126
127    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
128    {
129        pelihahmo1 = LoadAnimation("ukkoanimaatio");
130        pelaaja1 = new PlatformCharacter(leveys, korkeus);
131        pelaaja1.Position = paikka;
132        pelaaja1.Mass = pelaajaMassa;
133        pelaaja1.Image = pelaajanKuva1;
134        pelaaja1.AnimWalk = pelihahmo1;
135        pelaaja1.Weapon = new AssaultRifle(50, 10);
136        pelaaja1.Weapon.Image = asekuva;
137        pelaaja1.Weapon.FireRate = pelaajan1_ase_nopeus;
138        pelaaja1.Weapon.X = ase_X;
139        pelaaja1.Weapon.Y = ase_Y;
140        pelaaja1.Weapon.Ammo.Value = 100;
141        pelaaja1.Weapon.AmmoIgnoresGravity = false;
142        elamalaskuri = new IntMeter(10, 0, 20);
143        elamalaskuri.LowerLimit += delegate { PiikkiTormaa(pelaaja1, new PhysicsObject(1, 1)); };
144        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
145        AddCollisionHandler(pelaaja1, "piikki", PiikkiTormaa);
146        AddCollisionHandler(pelaaja1, "paketti1", Ammusotettu);
147        AddCollisionHandler(pelaaja1, "maali", maali);
148        AddCollisionHandler(pelaaja1, "PahisLuoti", pelaajaanOsuuLuoti);
149        AddCollisionHandler(pelaaja1, "paranusReppu", ottiHealthback);
150        ControllerOne.Listen(Button.A, ButtonState.Down, Hyppaa, "pelaaja hypää", pelaaja1, 300.0);
151        ControllerOne.ListenAnalog(AnalogControl.LeftStick, 0.1, Liikuta, "Pelaaja liikkuu vasemmalle/oikealle", pelaaja1);
152        ControllerOne.ListenAnalog(AnalogControl.RightStick, 0.1, Tahtaa, "tähtää aseella");
153        ControllerOne.Listen(Button.RightTrigger, ButtonState.Down, AmmuAseella, "ampuu", pelaaja1);
154        ControllerOne.Listen(Button.RightTrigger, ButtonState.Pressed, delegate { pelaaja1ampuu = true; }, null);
155        ControllerOne.Listen(Button.RightTrigger, ButtonState.Released, delegate { pelaaja1ampuu = false; }, null);
156        ControllerOne.Listen(Button.DPadLeft, ButtonState.Pressed, Cheathauska, "");
157        Add(pelaaja1);
158        pelaajaLista.Add(pelaaja1);
159    }
160    void Liikuta(PlatformCharacter hahmo, double nopeus)
161    {
162        hahmo.Walk(nopeus);
163    }
164
165    void Hyppaa(PlatformCharacter hahmo, double nopeus)
166    {
167        hahmo.Jump(nopeus);
168    }
169
170    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
171    {
172        pisteLaskuri.Value += 1;
173        maaliAani.Play();
174        MessageDisplay.Add("Sait Suklaata!");
175        tahti.Destroy();
176    }
177    void LisaaOhjaimet()
178    {
179
180        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
181        ControllerOne.Listen(Button.Start, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
182        ControllerTwo.Listen(Button.Start, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
183        Keyboard.Listen(Key.F1, ButtonState.Pressed, Cheat, "");
184        Keyboard.Listen(Key.F2, ButtonState.Down, LuotiCheat, "");
185        ControllerOne.Listen(Button.DPadDown, ButtonState.Down, LuotiCheat, "");
186        ControllerTwo.Listen(Button.DPadDown, ButtonState.Down, LuotiCheat, "");
187    }
188
189    void LisaaPelaaja2(Vector paikka, double leveys, double korkeus)
190    {
191        pelihahmo2 = LoadAnimation("toinenukkoanimaatio");
192        pelaaja2 = new PlatformCharacter(leveys, korkeus);
193        pelaaja2.Position = paikka;
194        pelaaja2.Mass = 4.0;
195        pelaaja2.Image = pelaajanKuva2;
196        pelaaja2.AnimWalk = pelihahmo2;
197        pelaaja2.Weapon = new AssaultRifle(50, 10);
198        pelaaja2.Weapon.FireRate = 1;
199        pelaaja2.Weapon.AmmoIgnoresGravity = false;
200        pelaaja2.Weapon.Image = null;
201        pelaaja2.Weapon.Image = asekuva2;
202        pelaaja2.Weapon.X = ase_X;
203        pelaaja2.Weapon.Y = -10.0;
204        pelaaja2.Weapon.Ammo.Value = 100;
205        elamalaskuri2 = new IntMeter(10, 0, 20);
206        elamalaskuri2.LowerLimit += delegate { PiikkiTormaa(pelaaja2, new PhysicsObject(1, 1)); };
207        AddCollisionHandler(pelaaja2, "tahti", TormaaTahteen);
208        AddCollisionHandler(pelaaja2, "piikki", PiikkiTormaa);
209        AddCollisionHandler(pelaaja2, "paketti1", Ammusotettu2);
210        AddCollisionHandler(pelaaja2, "maali", maali);
211        AddCollisionHandler(pelaaja2, "PahisLuoti", pelaajaanOsuuLuoti);
212        AddCollisionHandler(pelaaja2, "paranusReppu", ottiHealthback2);
213        ControllerTwo.Listen(Button.A, ButtonState.Down, Hyppaa, "pelaaja hypää", pelaaja2, 300.0);
214        ControllerTwo.ListenAnalog(AnalogControl.LeftStick, 0.1, Liikuta, "Pelaaja liikkuu vasemmalle/oikealle", pelaaja2);
215        ControllerTwo.ListenAnalog(AnalogControl.RightStick, 0.1, Tahtaa2, "tähtää aseella");
216        ControllerTwo.Listen(Button.RightTrigger, ButtonState.Down, AmmuAseella2, "ampuu", pelaaja2);
217        ControllerTwo.Listen(Button.RightTrigger, ButtonState.Pressed, delegate { pelaaja2ampuu = true; }, null);
218        ControllerTwo.Listen(Button.RightTrigger, ButtonState.Released, delegate { pelaaja2ampuu = false; }, null);
219        Add(pelaaja2);
220        pelaajaLista.Add(pelaaja2);
221
222    }
223    void Liikuta(AnalogState tatinTila, PlatformCharacter hahmo)
224    {
225        Vector tatinAsento = tatinTila.StateVector;
226        if (tatinAsento.X == 0.0)
227        {
228            return;
229        }
230        hahmo.Walk(pelaajan_nopeus * tatinAsento.X);
231
232    }
233    void Paavalikko()
234    {
235        MultiSelectWindow alkuvalikko = new MultiSelectWindow("pelin valikko", "aloita peli", "lopeta");
236        alkuvalikko.AddItemHandler(0, PelaajaValikko);
237        alkuvalikko.AddItemHandler(1, Exit);
238        Add(alkuvalikko);
239
240    }
241    void PelaajaValikko()
242    {
243        MultiSelectWindow alkuvalikko = new MultiSelectWindow("montako pelaajaa", "yksin", "kahdestaan");
244        alkuvalikko.AddItemHandler(0, delegate
245        {
246            LuoKentta(1);
247            pelaajienMaara = 1;
248        });
249        alkuvalikko.AddItemHandler(1, delegate
250        {
251            LuoKentta(2);
252            pelaajienMaara = 2;
253        });
254        Add(alkuvalikko);
255    }
256    void Ammusosui(PhysicsObject ammus, PhysicsObject kohde)
257    {
258        ammus.Destroy();
259    }
260    void LuoPistelaskuri()
261    {
262        pisteLaskuri = new IntMeter(0);
263
264        Label pisteNaytto = new Label();
265        pisteNaytto.X = Screen.Left + pistelaskurin_X;
266        pisteNaytto.Y = Screen.Top - pistelaskurin_Y;
267        pisteNaytto.TextColor = Color.Brown;
268        pisteNaytto.Color = Color.Wheat;
269        pisteNaytto.Title = "Suklaa";
270
271        pisteNaytto.BindTo(pisteLaskuri);
272        Add(pisteNaytto);
273    }
274
275    void AmmuAseella(PlatformCharacter pelaaja1)
276    {
277        PhysicsObject ammus = pelaaja1.Weapon.Shoot();
278
279        if (ammus != null)
280        {
281            pelaaja1.Weapon.Angle += Angle.FromDegrees(RandomGen.NextInt(-10, 10));
282            luotilaskuri.Value--;
283            ammus.Velocity = pelaaja1.Weapon.Angle.GetVector().Normalize() * ammusnopeus1;
284            ammus.Size *= 0.8;
285            ammus.Mass = pelaajan1_luodin_massa;
286            ammus.Image = luoti;
287            ammus.Tag = "ammus";
288            ControllerOne.Vibrate(0.16, 0.16, 0.16, 0.16, 0.1);
289            ammus.MaximumLifetime = TimeSpan.FromSeconds(0.4);
290
291        }
292    }
293
294    void Tahtaa(AnalogState tatinTila)
295    {
296        if (pelaaja1ampuu)
297        {
298            pelaaja1.Weapon.Angle = tatinTila.StateVector.Angle + Angle.FromDegrees(RandomGen.NextInt(-10, 10));
299        }
300        else
301        {
302            pelaaja1.Weapon.Angle = tatinTila.StateVector.Angle;
303        }
304    }
305
306    void PiikkiTormaa(PhysicsObject tormaaja, PhysicsObject kohde)
307    {
308        ClearAll();
309        Paavalikko();
310    }
311    void Piikki(Vector paikka, double leveys, double korkeus)
312    {
313        PhysicsObject piikki = PhysicsObject.CreateStaticObject(leveys, korkeus);
314        piikki.Position = paikka;
315        piikki.Image = piikkikuva;
316        piikki.CollisionIgnoreGroup = 10;
317        piikki.Tag = "piikki";
318        Add(piikki);
319    }
320
321
322    void AmmuAseella2(PlatformCharacter pelaaja2)
323    {
324        PhysicsObject ammus = pelaaja2.Weapon.Shoot();
325
326        if (ammus != null)
327        {
328            pelaaja2.Weapon.Angle += Angle.FromDegrees(RandomGen.NextInt(-1, 1));
329            ammus.Size *= 1.0;
330            ammus.Mass = pelaajan2_luodin_massa;
331            ammus.Image = luoti;
332            ammus.Tag = "sniper";
333            luotilaskuri2.Value--;
334            ammus.Velocity = pelaaja2.Weapon.Angle.GetVector().Normalize() * ammusnopeus2;
335            ControllerTwo.Vibrate(100.16, 100.16, 0.16, 0.16, 0.1);
336            ammus.MaximumLifetime = TimeSpan.FromSeconds(1.3);
337        }
338    }
339    void Tahtaa2(AnalogState tatinTila)
340    {
341        if (pelaaja2ampuu)
342        {
343            pelaaja2.Weapon.Angle = tatinTila.StateVector.Angle + Angle.FromDegrees(RandomGen.NextInt(-10, 10));
344        }
345        else
346        {
347            pelaaja2.Weapon.Angle = tatinTila.StateVector.Angle;
348        }
349
350    }
351    void Luotilaskuri()
352    {
353        luotilaskuri = new IntMeter(100);
354
355        Label pisteNaytto = new Label();
356        pisteNaytto.X = Screen.Right - pelaajan1_Luoti_laskuri_X;
357        pisteNaytto.Y = Screen.Top - pelaajan1_Luoti_laskuri_Y;
358        pisteNaytto.TextColor = Color.Red;
359        pisteNaytto.Color = Color.Black;
360        pisteNaytto.Title = "Pelaajan 1 Panokset";
361
362        pisteNaytto.BindTo(luotilaskuri);
363        Add(pisteNaytto);
364    }
365
366    void Luotilaskuri2()
367    {
368        luotilaskuri2 = new IntMeter(100);
369
370        Label pisteNaytto = new Label();
371        pisteNaytto.X = Screen.Right - pelaajan2_Luoti_laskuri_X;
372        pisteNaytto.Y = Screen.Top - pelaajan2_Luoti_laskuri_Y;
373        pisteNaytto.TextColor = Color.Blue;
374        pisteNaytto.Color = Color.Black;
375        pisteNaytto.Title = "Pelaajan 2 Panokset";
376        pisteNaytto.BindTo(luotilaskuri2);
377        Add(pisteNaytto);
378    }
379    void Ammuspaketti(Vector paikka, double leveys, double korkeus)
380    {
381        PhysicsObject ammuspaketti = PhysicsObject.CreateStaticObject(leveys, korkeus);
382        ammuspaketti.Position = paikka;
383        ammuspaketti.CollisionIgnoreGroup = 10;
384        ammuspaketti.Image = ammuspakettiKuva;
385        ammuspaketti.Tag = "paketti1";
386        Add(ammuspaketti);
387
388    }
389    void Ammusotettu(PhysicsObject hahmo, PhysicsObject kohde)
390    {
391        kohde.Destroy();
392        PlatformCharacter pelaaja1 = hahmo as PlatformCharacter;
393        pelaaja1.Weapon.Ammo.Value = 100;
394        luotilaskuri.Value = 100;
395    }
396    void Ammusotettu2(PhysicsObject hahmo, PhysicsObject kohde)
397    {
398        kohde.Destroy();
399        PlatformCharacter pelaaja2 = hahmo as PlatformCharacter;
400        pelaaja2.Weapon.Ammo.Value = 100;
401        luotilaskuri2.Value = 100;
402    }
403
404    void LisaaPahis(Vector paikka, double leveys, double korkeus)
405    {
406        Vihu pahis = new Vihu(leveys, korkeus);
407        pahis.Image = orkki;
408        pahis.Position = paikka;
409        pahis.CollisionIgnoreGroup = 10;
410        Add(pahis);
411        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
412        tasoAivot.Speed = pahisNopeus;
413        tasoAivot.JumpSpeed = 500;
414        tasoAivot.TriesToJump = true;
415        pahis.Brain = tasoAivot;
416        AssaultRifle pahiksenAse = new AssaultRifle(10, 10);
417        pahiksenAse.IsVisible = false;
418        pahis.Weapon = pahiksenAse;
419
420
421        Timer ampumisAjastin = new Timer();
422        ampumisAjastin.Interval = RandomGen.NextDouble(1, 2);
423        ampumisAjastin.Timeout += delegate
424        {
425            PahisAmpuu(pahis);
426        };
427        ampumisAjastin.Start();
428        pahis.Destroyed += delegate { ampumisAjastin.Stop(); };
429
430        AddCollisionHandler(pahis, "ammus", delegate(PhysicsObject P, PhysicsObject A)
431        {
432            pahis.ElamaLaskuri.Value -= 1;
433            A.Destroy();
434        });
435        AddCollisionHandler(pahis, "sniper", delegate(PhysicsObject P, PhysicsObject A)
436        {
437            pahis.ElamaLaskuri.Value -= 3;
438            A.Destroy();
439        });
440    }
441
442    void PahisAmpuu(PlatformCharacter pahis)
443    {
444        PhysicsObject ammus = pahis.Weapon.Shoot();
445        int i = RandomGen.NextInt(0, pelaajaLista.Count);
446        GameObject kohde = pelaajaLista[i];
447
448        pahis.Weapon.Angle = ((kohde.Position + new Vector(RandomGen.NextDouble(-10, +10), RandomGen.NextDouble(-10, +10))) - pahis.Position).Angle;
449
450        if (ammus != null)
451        {
452            ammus.Velocity = pahis.Weapon.Angle.GetVector().Normalize() * (ammusnopeus1 * 0.5);
453            ammus.Size *= 1.0;
454            ammus.Image = luoti;
455            ammus.MaximumLifetime = TimeSpan.FromSeconds(0.7);
456            ammus.Tag = "PahisLuoti";
457
458        }
459    }
460
461
462    void LisaaPahis2(Vector paikka, double leveys, double korkeus)
463    {
464        Vihu pahis2 = new Vihu(leveys, korkeus);
465        pahis2.Image = orkki2;
466        pahis2.Position = paikka;
467        pahis2.CollisionIgnoreGroup = 10;
468        pahis2.ElamaLaskuri.MaxValue = 10;
469        pahis2.ElamaLaskuri.Value = pahis2.ElamaLaskuri.MaxValue;
470        Add(pahis2);
471        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
472        tasoAivot.Speed = pahisNopeus;
473        tasoAivot.JumpSpeed = 500;
474        tasoAivot.TriesToJump = true;
475        pahis2.Brain = tasoAivot;
476        AddCollisionHandler(pahis2, "ammus", delegate(PhysicsObject P, PhysicsObject A)
477        {
478            pahis2.ElamaLaskuri.Value -= 1;
479            A.Destroy();
480        });
481        AddCollisionHandler(pahis2, "sniper", delegate(PhysicsObject P, PhysicsObject A)
482        {
483            pahis2.ElamaLaskuri.Value -= 3;
484            A.Destroy();
485        });
486    }
487    void maali(PhysicsObject pelaaja, PhysicsObject maali)
488    {
489        if (kenttaNro < kenttaMaara)
490        {
491            kenttaNro++;
492            LuoKentta(pelaajienMaara);
493        }
494
495    }
496
497    void LuoMaali(Vector paikka, double leveys, double korkeus)
498    {
499        PhysicsObject voittomaali = PhysicsObject.CreateStaticObject(leveys, korkeus);
500        voittomaali.Position = paikka;
501        voittomaali.Tag = "maali";
502        Add(voittomaali);
503    }
504
505    void Cheat()
506    {
507        if (kenttaNro < kenttaMaara)
508        {
509
510            kenttaNro++;
511            LuoKentta(pelaajienMaara);
512        }
513    }
514    void pelaajaanOsuuLuoti(PhysicsObject pelaaja, PhysicsObject kohde)
515    {
516        elamalaskuri.Value -= 1;
517        elamalaskuri2.Value -= 1;
518    }
519    void LuotiCheat()
520    {
521        pelaaja1.Weapon.Ammo.Value = 100;
522        luotilaskuri.Value = 100;
523
524        pelaaja2.Weapon.Ammo.Value = 100;
525        luotilaskuri2.Value = 100;
526    }
527    void Cheathauska()
528    {
529        ammusnopeus2 = 999999999999999;
530        pelaajan1_ase_nopeus = 999999999999999;
531        pelaaja1.Weapon.InfiniteAmmo = true;
532        pelaaja2.Weapon.InfiniteAmmo = true;
533    }
534
535    void Healthback(Vector paikka, double leveys, double korkeus)
536    {
537        PhysicsObject health = new PhysicsObject(leveys, korkeus);
538        health.Tag = "paranusReppu";
539        health.IgnoresGravity = true;
540    }
541
542    void ottiHealthback(PhysicsObject pelaaja, PhysicsObject kohde)
543    {
544        elamalaskuri.Value += 5;
545    }
546    void ottiHealthback2(PhysicsObject pelaaja, PhysicsObject kohde)
547    {
548        elamalaskuri.Value += 5;
549    }
550
551}
552class Vihu : PlatformCharacter
553{
554    private IntMeter elamaLaskuri = new IntMeter(5, 0, 5);
555    public IntMeter ElamaLaskuri { get { return elamaLaskuri; }
556        set { elamaLaskuri = value; }
557    }
558
559    public Vihu(double leveys, double korkeus)
560        : base(leveys, korkeus)
561    {
562        elamaLaskuri.LowerLimit += delegate { this.Destroy(); };
563    }
564
565}
Note: See TracBrowser for help on using the repository browser.