source: 2014/23/OtsoL/Are you alone/Are you alone/Are you alone/Are_you_alone.cs @ 4886

Revision 4886, 23.7 KB checked in by koannak, 7 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 Are_you_alone : TopDownPhysicsGame
10{
11    //tähän kuvat, äänet, nopeudet, voimat ja muut shitit :DD
12
13   
14
15    Image ensimmäinenseinänkuva = LoadImage("seina1");
16    Image toinenseinänkuva = LoadImage("seina2");
17    Image Ajkuvaeka = LoadImage("AJ (aitojäbä) (player1) (pelaaja1) flipped");
18    Image Ajkuvatoka = LoadImage("AJ (aitojäbä) (player1) (pelaaja1)");
19    Image avaimenkuva = LoadImage("avain");
20    Image ajkuva = LoadImage("AJ kuvake");
21    Image normiovenkuva = LoadImage("valmisovenkuva");
22    Image spessuovenkuva = LoadImage("demonovi");
23    Image harmaatausta = LoadImage("background");
24    Image kulmaekak = LoadImage("kulma1");
25    Image kulmatokak = LoadImage("kulma2");
26    Image kulmakolmek = LoadImage("kulma3");
27    Image kulmaneljäk = LoadImage("kulma4");
28    Image thwompkuva = LoadImage("thwomp");
29    Image teleporttaajankuva = LoadImage("slenderman");
30    Image liekki = LoadImage("soextreme");
31    Image seuraajakuva = LoadImage("jahtaaja");
32    Image ampujaK = LoadImage("ampuja");
33    Image isovovi = LoadImage("isokenttaovi");
34    Image paristok = LoadImage("paristo");
35    Image superparistok = LoadImage("super paristo");
36    Image pianonkuva = LoadImage("piano");
37    Image tynnyrinkuva = LoadImage("barrel");
38    Image eskuva = LoadImage("ES");
39    Image kirjak = LoadImage("bookself");
40    Image spessuK = LoadImage("demon key");
41    Image patsaankuva = LoadImage("statue");
42
43    SoundEffect roar1 = LoadSoundEffect("monter roar");
44    SoundEffect comeon = LoadSoundEffect("come_on_1");
45    SoundEffect ajhuuto = LoadSoundEffect("AJhuuto");
46
47    private PhysicsObject aj;
48    Vihollinen vihollinen;
49    private List<Vihollinen> listaVihollisista = new List<Vihollinen>();
50    int kenttanumero = 0;
51    int esnumero = 0;
52
53    IntMeter avainlaskuri;
54    IntMeter paristo;
55    IntMeter spessuavainmittari;
56
57    public override void Begin()
58    {
59        // TODO: Kirjoita ohjelmakoodisi tähän
60
61        MultiSelectWindow valikko = new MultiSelectWindow("Are you alone?", "Start game", "Exit");
62        valikko.Color = Color.DarkRed;
63        valikko.SetButtonColor(Color.DarkRed);
64        valikko.AddItemHandler(0, delegate { luokentta(kenttanumero); });
65        valikko.AddItemHandler(1, delegate { Exit(); });
66        Add(valikko);
67    }
68
69    void luokentta(int kenttanumero)
70    {
71        ClearAll();
72        esnumero = 0;
73        Level.Background.Color = new Color(0, 0, 0);
74        String kentanNimi = "corridor";
75        String viesti = "";
76
77        if(kenttanumero == 0)
78        {
79            viesti = "chapter one: The corridor";
80            MediaPlayer.Play("old chateau");
81            MediaPlayer.IsRepeating = true;
82        }
83        if (kenttanumero == 1)
84        {
85           
86            kentanNimi = "mainhall";
87            viesti = "chapter two: The main hall";
88            MediaPlayer.Play("lavendertown");
89            MediaPlayer.IsRepeating = true;
90        }
91        if (kenttanumero == 2)
92        {
93            MediaPlayer.Play("pokemon xy scary");
94            MediaPlayer.IsRepeating = true;
95            kentanNimi = "winecellar";
96            viesti = "chapter three: The wine cellar";
97        }
98        if (kenttanumero == 3)
99        {
100            MediaPlayer.Play("strange house");
101            MediaPlayer.IsRepeating = true;
102            kentanNimi = "laibrari";
103            viesti = "chapter four: The library";
104        }
105        if (kenttanumero == 4)
106        {
107            MediaPlayer.Play("final run");
108            MediaPlayer.IsRepeating = true;
109            kentanNimi = "final chapter";
110            viesti = "chapter five: The final run";
111        }
112        if (kenttanumero == 5)
113        {
114            MediaPlayer.Play("mario kart");
115            MediaPlayer.IsRepeating = true;
116            kentanNimi = "credits";
117            viesti = "thanks for playing! :P";
118        }
119        MessageWindow koridor = new MessageWindow(viesti);
120        koridor.BorderColor = Color.Green;
121        koridor.Color = Color.Red;
122        Add(koridor);
123
124        aj = new PhysicsObject(1, 1);
125
126        ColorTileMap map = ColorTileMap.FromLevelAsset(kentanNimi);
127        map.SetTileMethod(new Color(100, 100, 100), luoAj, aj);
128        map.SetTileMethod(new Color(110, 200, 30), luoavain);
129        map.SetTileMethod(new Color(200, 30, 110), luospessuavain);
130        map.SetTileMethod(new Color(255, 0, 0), luonovi);
131        map.SetTileMethod(new Color(0, 0, 255), luolukkovi);
132        map.SetTileMethod(new Color(90, 90, 90), luokenttaovi);
133        map.SetTileMethod(new Color(0, 0, 0), luopitkittäinenseina);
134        map.SetTileMethod(new Color(1, 1, 1), luosivuttainenseina);
135        map.SetTileMethod(new Color(120, 0, 0), luokulmaeka);
136        map.SetTileMethod(new Color(0, 120, 0), luokulmatoka);
137        map.SetTileMethod(new Color(0, 120, 90), luokulmakolmas);
138        map.SetTileMethod(new Color(0, 0, 120), luokulmaneljäs);
139        map.SetTileMethod(new Color(150, 60, 150), luothwomp);
140        map.SetTileMethod(new Color(60, 150, 150), luoteleporttaaja);
141        map.SetTileMethod(new Color(150, 150, 60), luoseuraaja);
142        map.SetTileMethod(new Color(60, 60, 150), luoampuja);
143        map.SetTileMethod(new Color(250, 250, 250), luopatteri);
144        map.SetTileMethod(new Color(255, 255, 255), luosuperpatteri);
145        map.SetTileMethod(new Color(200, 100, 200), luopiano);
146        map.SetTileMethod(new Color(100, 200, 200), luotynnyri);
147        map.SetTileMethod(new Color(220, 50, 100), luoes);
148        map.SetTileMethod(new Color(50, 200, 50), luokirjahylly);
149        map.SetTileMethod(new Color(255, 20, 255), luospessuovi);
150        map.SetTileMethod(new Color(190, 190, 190), luopatsas);
151
152
153        luoavainlaskuri();
154        luoparistolaskuri();
155        luospessuavainmittari();
156
157        map.Execute(100, 100);
158
159        if (kenttanumero < 5)
160        {
161            Camera.ZoomFactor = 1.5;
162            Level.AmbientLight = -0.3;
163        }
164        else
165        {
166            Camera.ZoomFactor = 0.3;
167            Level.AmbientLight = 0.6;
168        }
169        Camera.FollowedObject = aj;
170        LuoKontrollit();
171
172        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
173        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
174
175
176    }
177    void luopatsas(Vector paikka, double leveys, double korkeus)
178    {
179        PhysicsObject patsas = PhysicsObject.CreateStaticObject(100, 100);
180        patsas.Position = paikka;
181        patsas.Image = patsaankuva;
182        patsas.Tag = "patsas";
183        Add(patsas);
184        AddCollisionHandler(patsas, "aj", ajnerokkuudet);
185    }
186    void luospessuavain(Vector paikka, double leveys, double korkeus)
187    {
188        PhysicsObject spessuavain = new PhysicsObject(100,100);
189        spessuavain.Position = paikka;
190        spessuavain.Image = spessuK;
191        spessuavain.Tag = "spessuavain";
192        Add(spessuavain);
193        AddCollisionHandler(spessuavain, "aj", saitDavaimen);
194    }
195    void saitDavaimen(PhysicsObject spessu, PhysicsObject aj)
196    {
197        MessageDisplay.Add("you found a demon key!");
198        spessuavainmittari.Value = +1;
199        spessu.Destroy();
200    }
201    void luospessuavainmittari()
202    {
203        spessuavainmittari = new IntMeter(0);
204        Label spessunautto = new Label();
205        spessunautto.X = Screen.Left + 90;
206        spessunautto.Y = Screen.Top - 130;
207        spessunautto.Title = "Demon keys";
208        spessunautto.TextColor = Color.Red;
209        spessunautto.Color = Color.Black;
210        spessunautto.BindTo(spessuavainmittari);
211        Add(spessunautto);
212    }
213    void luospessuovi(Vector paikka, double leveys, double korkeus)
214    {
215        PhysicsObject spessuovi = PhysicsObject.CreateStaticObject(100, 100);
216        spessuovi.Position = paikka;
217        spessuovi.Image = spessuovenkuva;
218        AddCollisionHandler(spessuovi, "aj", spessuovenavaus);
219        Add(spessuovi);
220        AddCollisionHandler(spessuovi, "ammus", ammustuhoutuu);
221    }
222    void spessuovenavaus(PhysicsObject spessuovi, PhysicsObject aj)
223    {
224        if (spessuavainmittari > 0)
225        {
226            MessageDisplay.Add("The demon door opened");
227            spessuovi.Destroy();
228            Timer.SingleShot(1.5, delegate { luonovi(spessuovi.Position, spessuovi.Width, spessuovi.Height); });
229        }
230        else
231        {
232            MessageDisplay.Add("The door is locked");
233        }
234    }
235    void luokirjahylly(Vector paikka, double leveys, double korkeus)
236    {
237        PhysicsObject kirjahylly = PhysicsObject.CreateStaticObject(100, 100);
238        kirjahylly.Position = paikka;
239        kirjahylly.Image = kirjak;
240        kirjahylly.Tag = "kirjahylly";
241        Add(kirjahylly);
242        AddCollisionHandler(kirjahylly, "aj", ajnerokkuudet);
243        AddCollisionHandler(kirjahylly, "ammus", ammustuhoutuu);
244
245    }
246    void luoes(Vector paikka, double leveys, double korkeus)
247    {
248        PhysicsObject ES = new PhysicsObject(40, 80);
249        ES.Position = paikka;
250        ES.Image = eskuva;
251        Add(ES);
252        AddCollisionHandler(ES, "aj", nopeuskasvaa);
253    }
254    void nopeuskasvaa(PhysicsObject es, PhysicsObject mummo)
255    {
256        esnumero++;
257        es.Destroy();
258        Timer.SingleShot(10, delegate { esnumero--; });
259    }
260    void luopiano(Vector paikka, double leveys, double korkeus)
261    {
262        PhysicsObject piano = PhysicsObject.CreateStaticObject(290, 95);
263        piano.Image = pianonkuva;
264        piano.Position = paikka;
265        piano.Tag = "piano";
266        Add(piano);
267        AddCollisionHandler(piano, "aj", ajnerokkuudet);
268    }
269    void luotynnyri(Vector paikka, double leveys, double korkeus)
270    {
271        PhysicsObject tynnyri = PhysicsObject.CreateStaticObject(100, 100);
272        tynnyri.Image = tynnyrinkuva;
273        tynnyri.Position = paikka;
274        tynnyri.Tag = "tynnyri";
275        Add(tynnyri);
276        AddCollisionHandler(tynnyri, "ammus", ammustuhoutuu);
277        AddCollisionHandler(tynnyri, "aj", ajnerokkuudet);
278    }
279    void ajnerokkuudet(PhysicsObject asia, PhysicsObject aj)
280    {
281        comeon.Play();
282        if (asia.Tag == "tynnyri")
283        {
284            MessageDisplay.Add("Aj, There's no time to drink alcohol.");
285        }
286        else if (asia.Tag == "piano")
287        {
288            MessageDisplay.Add("Aj, You don't know how to play piano.");
289        }
290        else if (asia.Tag == "kirjahylly")
291        {
292            MessageDisplay.Add("You can't read Aj.");
293        }
294        else if (asia.Tag == "patsas")
295        {
296            MessageDisplay.Add("It's a fine statue.");
297        }
298    }
299    void luosuperpatteri(Vector paikka, double leveys, double korkeus)
300    {
301        PhysicsObject superpatteri = new PhysicsObject(100, 100);
302        superpatteri.Image = superparistok;
303        superpatteri.Tag = "superparisto";
304        superpatteri.Position = paikka;
305        Add(superpatteri);
306        AddCollisionHandler(superpatteri, "aj", lisaaenergiaa);
307        AddCollisionHandler(superpatteri, "ammus", ammustuhoutuu);
308    }
309
310    void luopatteri(Vector paikka, double leveys, double korkeus)
311    {
312        PhysicsObject patteri = new PhysicsObject(100,100);
313        patteri.Image = paristok;
314        patteri.Tag = "paristo";
315        patteri.Position = paikka;
316        Add(patteri);
317        AddCollisionHandler(patteri, "aj", lisaaenergiaa);
318        AddCollisionHandler(patteri, "ammus", ammustuhoutuu);
319    }
320    void lisaaenergiaa(PhysicsObject patteri, PhysicsObject keraaja)
321    {
322        if (patteri.Tag == "paristo")
323        {
324            paristo.Value += 50;
325            patteri.Destroy();
326        }
327        else
328        {
329            paristo.Value += 100;
330            patteri.Destroy();
331        }
332
333    }
334    void luoampuja(Vector paikka, double leveys, double korkeus)
335    {
336        Vihollinen vihollinen = new Vihollinen(leveys, korkeus, liekki, aj, paikka, ampujaK, this);
337        Add(vihollinen);
338        listaVihollisista.Add(vihollinen);
339       
340    }
341
342    void luoparistolaskuri()
343    {
344        paristo = new IntMeter(100);
345        paristo.MaxValue = 100;
346        paristo.MinValue = 0;
347        Label paristomittari = new Label();
348        paristomittari.BorderColor = Color.Black;
349        paristomittari.X = Screen.Left + 120;
350        paristomittari.Y = Screen.Top - 200;
351        paristomittari.Color = Color.Lime;
352        paristomittari.BindTo(paristo);
353        Add(paristomittari);
354
355       
356    }
357    void luoseuraaja(Vector paikka, double leveys, double korkeus)
358    {
359        PhysicsObject seuraaja = new PhysicsObject(60,60);
360        seuraaja.Position = paikka;
361        seuraaja.Image = seuraajakuva;
362        seuraaja.Tag = "vihollinen";
363        Add(seuraaja);
364        FollowerBrain jahtaajanaivo = new FollowerBrain("aj");
365        jahtaajanaivo.Speed = 250;
366        jahtaajanaivo.DistanceFar = 800;
367        jahtaajanaivo.DistanceClose = 200;
368        jahtaajanaivo.TurnWhileMoving = true;
369        jahtaajanaivo.TargetClose += delegate { };
370        seuraaja.Brain = jahtaajanaivo;
371        AddCollisionHandler(seuraaja, "aj", ajdelaa);
372    }
373    void luoteleporttaaja(Vector paikka, double leveys, double korkeus)
374    {
375        PhysicsObject teleporttaaja = new PhysicsObject(70, 70);
376        teleporttaaja.Position = paikka;
377        teleporttaaja.Tag = "vihollinen";
378        teleporttaaja.Image = teleporttaajankuva;
379        teleporttaaja.CanRotate = false;
380        Add(teleporttaaja);
381        Timer teleporttiajastin = new Timer();
382        teleporttiajastin.Interval = 7;
383        teleporttiajastin.Timeout += delegate { teleporttaaja.Position = aj.Position + RandomGen.NextVector(200, 500); };
384        teleporttiajastin.Start();
385        FollowerBrain teleporttiaivo = new FollowerBrain("aj");
386        teleporttiaivo.DistanceFar = 300;
387        teleporttiaivo.Speed = 135;
388        teleporttiaivo.StopWhenTargetClose = false;
389        teleporttaaja.Brain = teleporttiaivo;
390        AddCollisionHandler(teleporttaaja, "aj", ajdelaa);
391
392    }
393
394    void ajdelaa(PhysicsObject uhri, PhysicsObject teleporttaaja)
395    {
396        ajhuuto.Play();
397        if (teleporttaaja.Tag == "vihollinen")
398        {
399           
400            MessageDisplay.Add("You are dead.");
401            Timer.SingleShot(3.0, delegate {  luokentta(kenttanumero); });
402            uhri.Destroy();
403        }
404        else if (teleporttaaja.Tag == "ammus")
405        {
406           
407            MessageDisplay.Add("You are dead.");
408            uhri.Destroy();
409            Timer.SingleShot(3.0, delegate {luokentta(kenttanumero); });
410           
411            teleporttaaja.Destroy();
412        }
413 
414    }
415    void luothwomp(Vector paikka, double leveys, double korkeus)
416    {
417        PhysicsObject thwomp = new PhysicsObject(100, 100);
418        thwomp.Image = thwompkuva;
419        thwomp.Position = paikka;
420        thwomp.Tag = "vihollinen";
421        RandomMoverBrain thwompinaivot = new RandomMoverBrain();
422        thwompinaivot.Speed = 150;
423        thwompinaivot.WanderRadius = 350;
424        thwompinaivot.ChangeMovementSeconds = 1;
425        thwompinaivot.Owner = thwomp;
426        thwomp.Brain = thwompinaivot;
427        Add(thwomp);
428        AddCollisionHandler(thwomp, "aj", ajdelaa);
429       
430    }
431
432    void luolukkovi(Vector paikka, double leveys, double korkeus)
433    {
434        PhysicsObject lukkovi = PhysicsObject.CreateStaticObject(100, 100);
435        lukkovi.Position = paikka;
436        lukkovi.Image = normiovenkuva;
437        AddCollisionHandler(lukkovi, "aj", lukollisenovenavaus);
438        Add(lukkovi);
439        AddCollisionHandler(lukkovi, "ammus", ammustuhoutuu);
440    }
441    void lukollisenovenavaus(PhysicsObject lukkovi, PhysicsObject lukkomies)
442    {
443        if (avainlaskuri > 0)
444        {
445            MessageDisplay.Add("The door opened!");
446            avainlaskuri.Value--;
447            Timer.SingleShot(1.5, delegate { luonovi(lukkovi.Position, lukkovi.Width, lukkovi.Height); });
448            lukkovi.Destroy();
449        }
450        else { MessageDisplay.Add("The door is locked"); }
451    }
452    void luoavainlaskuri()
453    {
454        avainlaskuri = new IntMeter(0);
455        Label avainnautto = new Label();
456        avainnautto.X = Screen.Left + 90;
457        avainnautto.Y = Screen.Top - 100;
458        avainnautto.TextColor = Color.Gold;
459        avainnautto.Color = Color.Black;
460        avainnautto.BindTo(avainlaskuri);
461        avainnautto.Title = "Keys";
462        Add(avainnautto);
463    }
464    void luokulmaeka(Vector paikka, double leveys, double korkeus)
465    {
466        PhysicsObject kulmayksi = PhysicsObject.CreateStaticObject(100, 100);
467        kulmayksi.Position = paikka;
468        kulmayksi.Image = kulmaekak;
469        Add(kulmayksi);
470        AddCollisionHandler(kulmayksi, "ammus", ammustuhoutuu);
471    }
472    void luokulmatoka(Vector paikka, double leveys, double korkeus)
473    {
474        PhysicsObject kulmakaksi = PhysicsObject.CreateStaticObject(100, 100);
475        kulmakaksi.Image = kulmatokak;
476        kulmakaksi.Position = paikka;
477        Add(kulmakaksi);
478        AddCollisionHandler(kulmakaksi, "ammus", ammustuhoutuu);
479    }
480    void luokulmakolmas(Vector paikka, double leveys, double korkeus)
481    {
482        PhysicsObject kulmakolme = PhysicsObject.CreateStaticObject(100, 100);
483        kulmakolme.Image = kulmakolmek;
484        kulmakolme.Position = paikka;
485        Add(kulmakolme);
486        AddCollisionHandler(kulmakolme, "ammus", ammustuhoutuu);
487
488    }
489    void luokulmaneljäs(Vector paikka, double leveys, double korkeus)
490    {
491        PhysicsObject kulmaneljä = PhysicsObject.CreateStaticObject(100, 100);
492        kulmaneljä.Image = kulmaneljäk;
493        kulmaneljä.Position = paikka;
494        Add(kulmaneljä);
495        AddCollisionHandler(kulmaneljä, "ammus", ammustuhoutuu);
496
497    }
498
499    void luonovi(Vector paikka, double leveys, double korkeus)
500    {
501        PhysicsObject ovi = PhysicsObject.CreateStaticObject(100, 100);
502        ovi.Position = paikka;
503        ovi.Image = normiovenkuva;
504        AddCollisionHandler(ovi, "aj", ovenavaus);
505        AddCollisionHandler(ovi, "ammus", ammustuhoutuu);
506        Add(ovi);
507    }
508    void luosivuttainenseina(Vector paikka, double leveys, double korkeus)
509    {
510        PhysicsObject Seina1 = PhysicsObject.CreateStaticObject(100, 100);
511        Seina1.Position = paikka;
512        Seina1.Image = ensimmäinenseinänkuva;
513        Add(Seina1);
514        AddCollisionHandler(Seina1, "ammus", ammustuhoutuu);
515    }
516    void luopitkittäinenseina(Vector paikka, double leveys, double korkeus)
517    {
518        PhysicsObject Seina2 = PhysicsObject.CreateStaticObject(100, 100);
519        Seina2.Position = paikka;
520        Seina2.Image = toinenseinänkuva;
521
522        Add(Seina2);
523        AddCollisionHandler(Seina2, "ammus", ammustuhoutuu);
524    }
525    void ammustuhoutuu(PhysicsObject osuttava, PhysicsObject kudi)
526    {
527        kudi.Destroy();
528    }
529    void luokenttaovi(Vector paikka, double leveys, double korkeus)
530    {
531        PhysicsObject kenttaovi = PhysicsObject.CreateStaticObject(100, 100);
532        kenttaovi.Tag = "iso";
533        kenttaovi.Image = isovovi;
534        kenttaovi.Position = paikka;
535        Add(kenttaovi);
536    }
537    void ovenavaus(PhysicsObject ovi, PhysicsObject avaaja)
538    {
539        ovi.Destroy();
540        Timer.SingleShot(1.5, delegate { luonovi(ovi.Position, ovi.Width, ovi.Height); });
541    }
542    void luoavain(Vector paikka, double leveys, double korkeus)
543    {
544        PhysicsObject avain = new PhysicsObject(100, 100);
545        avain.Image = avaimenkuva;
546        avain.Position = paikka;
547
548        avain.Tag = "avain";
549        AddCollisionHandler(avain, "aj", avaimenkeruu);
550        Add(avain);
551    }
552    void avaimenkeruu(PhysicsObject avain, PhysicsObject kerääjä)
553    {
554        avainlaskuri.Value++;
555        MessageDisplay.Add("you found key!");
556        avain.Destroy();
557    }
558    void luoAj(Vector paikka, double leveys, double korkeus, PhysicsObject aj)
559    {
560
561        // aj = new PhysicsObject(70, 70);
562        aj.Size = new Vector(70, 70);
563        aj.Restitution = 0;
564        aj.Image = ajkuva;
565        aj.Position = paikka;
566        aj.CanRotate = false;
567        aj.Shape = Shape.Circle;
568        aj.Tag = "aj";
569        AddCollisionHandler(aj, "iso", nextlevel);
570        Add(aj);
571
572        AddCollisionHandler(aj, "ammus", ajdelaa);
573        AddCollisionHandler(aj, "vihollinen", ajdelaa);
574
575        Light lamppu = new Light();
576     
577        lamppu.Position = aj.Position;
578        Add(lamppu);
579        Timer lamppuAjastin = new Timer();
580        lamppuAjastin.Interval = 0.01;
581        lamppuAjastin.Timeout += delegate { lamppu.Position = aj.Position; };
582        lamppuAjastin.Start();
583
584        Timer paristonkulutus = new Timer();
585        paristonkulutus.Interval = 0.4;
586        paristonkulutus.Timeout += delegate
587        {
588            paristo.Value--;
589            float p = paristo.Value / (float)paristo.MaxValue;
590            lamppu.Distance = 70 + 40 * p;
591            lamppu.Intensity = 0.8 + 0.7 * p;
592            //if (paristo.Value > 0)
593            //{
594            //    lamppu.Intensity = 1.4;
595            //    lamppu.Distance = 80;
596            //}
597           
598            //if (paristo.Value == 0)
599            //{
600            //    lamppu.Distance = 60;
601            //    lamppu.Intensity = 0.8; }
602        };
603        paristonkulutus.Start();
604
605    }
606    void nextlevel(PhysicsObject aj, PhysicsObject isoovi)
607    {
608        kenttanumero++;
609        luokentta(kenttanumero);
610    }
611    void LuoKontrollit()
612    {
613        Keyboard.Listen(Key.Left, ButtonState.Down, AjLiikkuu, null, new Vector(-300, 0));
614        Keyboard.Listen(Key.Left, ButtonState.Released, AjLiikkuu, null, new Vector(0, 0));
615        Keyboard.Listen(Key.Right, ButtonState.Down, AjLiikkuu, null, new Vector(300, 0));
616        Keyboard.Listen(Key.Right, ButtonState.Released, AjLiikkuu, null, new Vector(0, 0));
617        Keyboard.Listen(Key.Up, ButtonState.Down, AjLiikkuu, null, new Vector(0, 300));
618        Keyboard.Listen(Key.Up, ButtonState.Released, AjLiikkuu, null, new Vector(0, 0));
619        Keyboard.Listen(Key.Down, ButtonState.Down, AjLiikkuu, null, new Vector(0, -300));
620        Keyboard.Listen(Key.Down, ButtonState.Released, AjLiikkuu, null, new Vector(0, 0));
621
622    }
623    void AjLiikkuu(Vector vektori)
624    {
625        if (esnumero == 0)
626        {
627            aj.Move(vektori);
628        }
629        if (esnumero > 0)
630        {
631            aj.Move(vektori * (esnumero+1));
632        }
633    }
634
635}
636public class Vihollinen : PhysicsObject
637{
638    private Timer ajastin;
639    private Image liekki;
640    private PhysicsObject aj;
641    private Game peli;
642
643    public Vihollinen(double leveys, double korkeus, Image liekkiKuva, PhysicsObject ajv, Vector paikka, Image kuva, Game peli) 
644        :base(leveys, korkeus)
645    {
646        liekki = liekkiKuva;
647        aj = ajv;
648        this.peli = peli;
649        this.Position = paikka;
650        this.Image = kuva;
651        LuoAivot();
652    }
653
654    private void LuoAivot()
655    {
656        RandomMoverBrain ampujanaivot = new RandomMoverBrain();
657        ampujanaivot.Speed = 100;
658        this.Brain = ampujanaivot;
659        ampujanaivot.WanderRadius = 500;
660        Timer ampuminen = new Timer();
661        ampuminen.Interval = 2;
662        ampuminen.Timeout += AlustaAjastin;
663        ampuminen.Start();
664    }
665
666    private void AlustaAjastin()
667    {
668
669        PhysicsObject ammus = new PhysicsObject(30, 30);
670        ammus.Position = this.Position;
671        ammus.Image = liekki;
672        ammus.Tag = "ammus";
673        peli.Add(ammus);
674        Vector ampumisuunta = (aj.Position - this.Position).Normalize();
675        this.Angle = ampumisuunta.Angle;
676        ammus.Hit(ampumisuunta * 450);
677       
678
679    }
680
681}
Note: See TracBrowser for help on using the repository browser.