source: 2013/27/AkiP/Kirkle/Kirkle/Abilly.cs @ 4436

Revision 4436, 21.0 KB checked in by akeepylv, 10 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Pelaaja : PlatformCharacter
10{
11    public double Liikkumisnopeus { get; set; }
12    public double Hyppynopeus { get; set; }
13    public bool VoiLiidella = false;
14    public Pelaaja(double leveys, double korkeus)
15        : base(leveys, korkeus)
16    {
17
18    }
19
20}
21
22public class Abilly : PhysicsGame
23{
24    const int RUUDUN_KOKO = 40;
25
26    Pelaaja pelaaja1;
27    GameObject huiviPropelli;
28    PhysicsObject huiviRuoska;
29
30    IntMeter pisteLaskuri;
31    IntMeter hedelmaLaskuri;
32    IntMeter lisaElamaLaskuri;
33    //DoubleMeter elamaLaskuri;
34   
35    Image pelaajanKuva = LoadImage("AbillyIdle");
36
37    private Image[] AbillyKavely = LoadImages("AbillyWalking-1", "AbillyWalking-2", "AbillyWalking-3", "AbillyWalking-4");
38    private Image[] AbillyHyppy = LoadImages("AbillyJump-1", "AbillyJump-1", "AbillyJump-1", "AbillyJump-1", "AbillyJump-2", "AbillyJump-2", "AbillyJump-2", "AbillyJump-2");
39    private Image[] AbillyPudotus = LoadImages("AbillyFall-1", "AbillyFall-1", "AbillyFall-1", "AbillyFall-1", "AbillyFall-2", "AbillyFall-2", "AbillyFall-2", "AbillyFall-2");
40    private Image[] AbillyIdle = LoadImages("AbillyIdle");
41    private Image[] AbillyKyyristys = LoadImages("AbillyCrouch");
42    private Image[] AbillyRyominta = LoadImages("AbillyCrawling-1", "AbillyCrouch", "AbillyCrawling-2", "AbillyCrouch");
43    private Image[] LiitelyAnimaatio = LoadImages("AbillyGliding");
44    private Image[] HyokkaysAnimaatio = LoadImages("AbillyAttack");
45    private Image[] HyokkaysIlmassaAnimaatio = LoadImages("AbillyMid-airAttack");
46    //private Image[] kirkleKipu = LoadImages("KirkleKipu2", "KirkleKipu1", "KirkleKipu2", "KirkleKipu1", "KirkleKipu2", "KirkleKipu1", "KirkleKipu2");
47    private Image[] HuiviPropelliLiike = LoadImages("ScarfPropeller-1", "ScarfPropeller-2");
48
49    private Image[] EyeAlienWalk = LoadImages("EyeAlienWalking-1", "EyeAlienWalking-2", "EyeAlienWalking-3", "EyeAlienWalking-2", "EyeAlienWalking-1", "EyeAlienWalking-4");
50    private Image[] EvilKirkleWalk = LoadImages("EvilKirkleWalking-1", "EvilKirkleWalking-2", "EvilKirkleWalking-1", "EvilKirkleWalking-3");
51   
52    private Image[] maalianimaatio = LoadImages("Maali1", "Maali2", "Maali3");
53
54    Animation HuiviPropelliPyorii;
55    Animation HuiviPropelliPeilattu;
56
57    Image hyokkaysKuva = LoadImage("AbillyAttack");
58    Image huivinKuva = LoadImage("ScarfWhip");
59    Image huiviKuvaPeilattu;
60
61    Image vartijaKuva = LoadImage("Sentient");
62
63    Image hedelmaKuva = LoadImage("Fruit");
64    Image sydanKuva = LoadImage("Heart");
65    Image laatikkoKuva = LoadImage("Box");
66
67    Image ruohoKuva = LoadImage("Ruoho2");
68    Image ruohoOikeaYlaKuva = LoadImage("RuohoOikeaYla");
69    Image ruohoVasenYlaKuva = LoadImage("RuohoVasenYla");
70    Image ruohoKattoKuva = LoadImage("RuohoKatto");
71    Image ruohoKattoVasenKuva = LoadImage("RuohoKattoVasen");
72    Image ruohoKattoOikeaKuva = LoadImage("RuohoKattoOikea");
73    Image ruohoSeinaKuva = LoadImage("RuohoSeina");
74
75    Image maaKuva = LoadImage("Maa2");
76    Image maaVasenReunaKuva = LoadImage("MaaVasenReuna");
77    Image maaOikeaReunaKuva = LoadImage("MaaOikeaReuna");
78    Image maaVasenAlaKulmaKuva = LoadImage("MaaVasenAlaKulma");
79    Image maaOikeaAlaKulmaKuva = LoadImage("MaaOikeaAlaKulma");
80    Image maaAlaReunaKuva = LoadImage("MaaAlaReuna");
81    Image maaSeinaKuva = LoadImage("MaaSeina");
82
83    Image piikkiKuva = LoadImage("Spike");
84
85    Image puuYlaKuva = LoadImage("PuuYla");
86    Image puuKeskiKuva = LoadImage("PuuKeski");
87    Image puuAlaKuva = LoadImage("PuuAla");
88
89    SoundEffect maaliAani = LoadSoundEffect("maali");
90
91
92    int kenttaNro = 1;
93
94    public override void Begin()
95    {
96        huiviKuvaPeilattu = Image.Mirror(huivinKuva);
97        HuiviPropelliPeilattu = Animation.Mirror(new Animation(HuiviPropelliLiike));
98        HuiviPropelliPyorii = new Animation(HuiviPropelliLiike);
99
100        SeuraavaKentta();
101
102        //LuoElamaLaskuri();
103        LuoLisaElamaLaskuri();
104        LuoPisteLaskuri();
105        LuoHedelmaLaskuri();
106    }
107
108    void SeuraavaKentta()
109    {
110        ClearAll();
111
112        Gravity = new Vector(0, -1500);
113        if (kenttaNro == 1) LuoKentta("kentta1");
114        else if (kenttaNro == 2) LuoKentta("kentta2");
115        else if (kenttaNro > 2) Exit();
116
117        Camera.Follow(pelaaja1);
118        Camera.Zoom(2.1);
119        Camera.StayInLevel = true;
120
121        //LisaaElamaLaskuri();
122        LisaaNappaimet();
123    }
124
125    void LuoKentta(String kentanNimi)
126    {
127        TileMap kentta = TileMap.FromLevelAsset(kentanNimi);
128        kentta.SetTileMethod('/', LisaaTaso, ruohoKuva);
129        kentta.SetTileMethod('J', LisaaTaso, ruohoOikeaYlaKuva);
130        kentta.SetTileMethod('E', LisaaTaso, ruohoVasenYlaKuva);
131        kentta.SetTileMethod('T', LisaaTaso, ruohoKattoKuva);
132        kentta.SetTileMethod('I', LisaaTaso, ruohoKattoOikeaKuva);
133        kentta.SetTileMethod('P', LisaaTaso, ruohoKattoVasenKuva);
134        kentta.SetTileMethod('L', LisaaTaso, ruohoSeinaKuva);
135
136        kentta.SetTileMethod('#', LisaaMaa, maaKuva);
137        kentta.SetTileMethod('Q', LisaaMaa, maaVasenReunaKuva);
138        kentta.SetTileMethod('A', LisaaMaa, maaOikeaReunaKuva);
139        kentta.SetTileMethod('Z', LisaaMaa, maaVasenAlaKulmaKuva);
140        kentta.SetTileMethod('X', LisaaMaa, maaOikeaAlaKulmaKuva);
141        kentta.SetTileMethod('V', LisaaMaa, maaAlaReunaKuva);
142        kentta.SetTileMethod('O', LisaaMaa, maaSeinaKuva);
143
144        kentta.SetTileMethod('S', LisaaPiikki);
145        kentta.SetTileMethod('*', LisaaHedelma);
146        kentta.SetTileMethod('>', LisaaSydan);
147        kentta.SetTileMethod('B', LisaaLaatikko);
148        kentta.SetTileMethod('G', LisaaMaali);
149
150        kentta.SetTileMethod('H', LisaaTaustaobjekti, puuYlaKuva);
151        kentta.SetTileMethod('C', LisaaTaustaobjekti, puuKeskiKuva);
152        kentta.SetTileMethod('D', LisaaTaustaobjekti, puuAlaKuva);
153
154        kentta.SetTileMethod('N', LisaaPelaaja);
155        kentta.SetTileMethod('1', LisaaEyeAlien);
156        kentta.SetTileMethod('2', LisaaEvilKirkle);
157        kentta.SetTileMethod('3', LisaaVartija);
158
159        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
160        Level.CreateBorders();
161        if (kentanNimi.Equals("kentta1"))
162            Level.Background.Color = Color.LightBlue;
163        if (kentanNimi.Equals("kentta2"))
164            Level.Background.Color = Color.Black;
165    }
166
167    void LisaaTaso(Vector paikka, double leveys, double korkeus, Image lisattavaKuva)
168    {
169        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
170        taso.Position = paikka;
171        taso.Color = Color.Green;
172        taso.Restitution = 1.2;
173        taso.Image = lisattavaKuva;
174        taso.CollisionIgnoreGroup = 1;
175        Add(taso);
176    }
177
178    void LisaaMaa(Vector paikka, double leveys, double korkeus, Image lisattavaKuva)
179    {
180        PhysicsObject maa = PhysicsObject.CreateStaticObject(leveys, korkeus);
181        maa.Position = paikka;
182        maa.Color = Color.DarkBrown;
183        maa.Image = lisattavaKuva;
184        maa.CollisionIgnoreGroup = 1;
185        Add(maa);
186    }
187
188    void LisaaPiikki(Vector paikka, double leveys, double korkeus)
189    {
190        PhysicsObject piikki = PhysicsObject.CreateStaticObject(leveys, korkeus);
191        piikki.Position = paikka;
192        piikki.Color = Color.Gray;
193        piikki.Image = piikkiKuva;
194        piikki.CollisionIgnoreGroup = 1;
195        Add(piikki);
196    }
197
198    void LisaaHedelma(Vector paikka, double leveys, double korkeus)
199    {
200        PhysicsObject hedelma = PhysicsObject.CreateStaticObject(leveys * 0.55, korkeus * 0.9);
201        hedelma.IgnoresCollisionResponse = true;
202        hedelma.Position = paikka;
203        hedelma.Image = hedelmaKuva;
204        hedelma.Tag = "hedelma";
205        Add(hedelma);
206    }
207
208    void LisaaSydan(Vector paikka, double leveys, double korkeus)
209    {
210        PhysicsObject sydan = PhysicsObject.CreateStaticObject(leveys * 0.95, korkeus * 0.85);
211        sydan.IgnoresCollisionResponse = true;
212        sydan.Position = paikka;
213        sydan.Image = sydanKuva;
214        sydan.Tag = "sydan";
215        Add(sydan);
216    }
217
218    void LisaaLaatikko(Vector paikka, double leveys, double korkeus)
219    {
220        PhysicsObject laatikko = new PhysicsObject(leveys * 3, korkeus * 3);
221        laatikko.Position = paikka;
222        laatikko.Mass = 10.0;
223        laatikko.CanRotate = false;
224        laatikko.Color = Color.DarkBrown;
225        laatikko.Image = laatikkoKuva;
226        AddCollisionHandler(laatikko, "vihollinen", LaatikkoTormaaVihuun);
227        Add(laatikko);
228    }
229
230    void LisaaMaali(Vector paikka, double leveys, double korkeus)
231    {
232        PhysicsObject maali = PhysicsObject.CreateStaticObject(leveys, korkeus);
233        maali.Position = paikka;
234        maali.Color = Color.Magenta;
235        maali.Animation = new Animation(maalianimaatio);
236        maali.Animation.Start();
237        maali.Animation.FPS = 5;
238        maali.CollisionIgnoreGroup = 1;
239        maali.Tag = "maali";
240        Add(maali);
241    }
242
243    void LisaaTaustaobjekti(Vector paikka, double leveys, double korkeus, Image lisattavaKuva)
244    {
245        PhysicsObject taustaobjekti = PhysicsObject.CreateStaticObject(leveys, korkeus);
246        taustaobjekti.Position = paikka;
247        taustaobjekti.Color = Color.JungleGreen;
248        taustaobjekti.CollisionIgnoreGroup = 2;
249        taustaobjekti.IgnoresGravity = true;
250        taustaobjekti.IgnoresPhysicsLogics = true;
251        taustaobjekti.IgnoresCollisionResponse = true;
252        taustaobjekti.Image = lisattavaKuva;
253        Add(taustaobjekti, -1);
254    }
255
256    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
257    {
258        pelaaja1 = new Pelaaja(leveys * 0.9, korkeus * 2);
259        pelaaja1.Liikkumisnopeus = 250;
260        pelaaja1.Hyppynopeus = 700;
261        pelaaja1.AnimWalk = new Animation(AbillyKavely);
262        pelaaja1.AnimJump = new Animation(AbillyHyppy);
263        pelaaja1.LoopJumpAnim = true;
264        pelaaja1.AnimFall = new Animation(AbillyPudotus);
265        pelaaja1.LoopFallAnim = true;
266        pelaaja1.AnimIdle = new Animation(AbillyIdle);
267        pelaaja1.AnimWalk.FPS = 7;
268        //pelaaja1.AnimJump.FPS = 8;
269        //pelaaja1.AnimFall.FPS = 8;
270        pelaaja1.Position = paikka;
271        pelaaja1.Mass = 4.0;
272        pelaaja1.Restitution = 0.1;
273        pelaaja1.Image = pelaajanKuva;
274        //pelaaja1.CollisionIgnoreGroup = 2;
275        AddCollisionHandler(pelaaja1, "hedelma", TormaaHedelmaan);
276        AddCollisionHandler(pelaaja1, "sydan", TormaaSydammeen);
277        AddCollisionHandler(pelaaja1, "vihollinen", TormaaVihuun);
278        AddCollisionHandler(pelaaja1, "maali", delegate(PhysicsObject p, PhysicsObject p2)
279        {
280            kenttaNro++;
281            SeuraavaKentta();
282        });
283        Add(pelaaja1);
284
285        LisaaHuiviPropelli(leveys, korkeus);
286        //LisaaHuiviRuoska(Vector.Zero, leveys, korkeus);
287    }
288
289    void LisaaHuiviRuoska(double leveys, double korkeus)
290    {
291        huiviRuoska = new PhysicsObject(leveys * 2, korkeus * 0.55);
292        huiviRuoska.X = pelaaja1.X + pelaaja1.FacingDirection.GetVector().X * (pelaaja1.Width / 2 + huiviRuoska.Width / 2);
293        huiviRuoska.Y = pelaaja1.Y + 7;
294        //huiviRuoska.Velocity = pelaaja1.Velocity;
295        //huiviRuoska.Acceleration = pelaaja1.Acceleration;
296        //huiviRuoska.Mass = 4.0;
297        if (pelaaja1.FacingDirection == Direction.Right)
298        { huiviRuoska.Image = huivinKuva; }
299        else { huiviRuoska.Image = huiviKuvaPeilattu; }
300
301        huiviRuoska.Color = Color.Yellow;
302        huiviRuoska.LifetimeLeft = TimeSpan.FromMilliseconds(250);
303        huiviRuoska.IgnoresGravity = true;
304        huiviRuoska.IgnoresCollisionResponse = true;
305        AddCollisionHandler(huiviRuoska, "vihollinen", TuhoaaVihun);
306        Add(huiviRuoska);
307    }
308
309    void LisaaHuiviPropelli(double leveys, double korkeus)
310    {
311        huiviPropelli = new GameObject(leveys * 2, korkeus * 0.65);
312        huiviPropelli.Y = pelaaja1.Height / 2 + huiviPropelli.Height / 2;
313        huiviPropelli.Animation = HuiviPropelliPyorii;
314        //huiviPropelli.Animation.Mirror();
315        huiviPropelli.Animation.Start();
316        huiviPropelli.Animation.FPS = 8;
317
318        HuiviPropelliPeilattu.Start();
319        HuiviPropelliPeilattu.FPS = 8;
320
321        huiviPropelli.IsVisible = false;
322        huiviPropelli.Color = Color.DarkYellow;
323        pelaaja1.Add(huiviPropelli);
324    }
325
326    void LisaaEyeAlien(Vector paikka, double leveys, double korkeus)
327    {
328        Vihu eyeAlien = new Vihu(leveys, korkeus * 2);
329        eyeAlien.Position = paikka;
330        eyeAlien.Color = Color.Red;
331        eyeAlien.Animation = new Animation(EyeAlienWalk);
332        eyeAlien.Animation.Start();
333        eyeAlien.Animation.FPS = 7;
334        eyeAlien.CollisionIgnoreGroup = 2;
335        eyeAlien.Tag = "vihollinen";
336        Add(eyeAlien);
337
338        PlatformWandererBrain tasoAivot1 = new PlatformWandererBrain();
339        tasoAivot1.Speed = 75;
340        tasoAivot1.FallsOffPlatforms = false;
341
342        eyeAlien.Brain = tasoAivot1;
343    }
344
345    void LisaaEvilKirkle(Vector paikka, double leveys, double korkeus)
346    {
347        Vihu evilKirkle = new Vihu(leveys * 1.1, korkeus * 0.85);
348        evilKirkle.Position = paikka;
349        evilKirkle.Color = Color.Purple;
350        evilKirkle.Animation = new Animation(EvilKirkleWalk);
351        evilKirkle.Animation.Start();
352        evilKirkle.Animation.FPS = 7;
353        evilKirkle.Tag = "vihollinen";
354        Add(evilKirkle);
355
356        PlatformWandererBrain tasoAivot2 = new PlatformWandererBrain();
357        tasoAivot2.Speed = 100;
358        tasoAivot2.FallsOffPlatforms = false;
359        //tasoAivot2.TurnWhileMoving = false;
360
361        evilKirkle.Brain = tasoAivot2;
362    }
363
364    void LisaaVartija(Vector paikka, double leveys, double korkeus)
365    {
366        Vihu vartija = new Vihu(leveys * 3, korkeus * 3);
367        vartija.Position = paikka;
368        vartija.Color = Color.GreenYellow;
369        vartija.Image = vartijaKuva;
370        vartija.Tag = "vihollinen";
371        Add(vartija);
372    }
373
374
375    void LuoLisaElamaLaskuri()
376    {
377        lisaElamaLaskuri = new IntMeter(3);
378
379        Label elamaNaytto = new Label();
380        elamaNaytto.IntFormatString = "Lives: {0:D2}";
381        elamaNaytto.Font = Font.DefaultLargeBold;
382        elamaNaytto.X = Screen.Left + 800;
383        elamaNaytto.Y = Screen.Top - 50;
384        elamaNaytto.TextColor = Color.White;
385        elamaNaytto.Color = Color.Transparent;
386        elamaNaytto.BindTo(lisaElamaLaskuri);
387        Add(elamaNaytto);
388    }
389 
390    void LuoPisteLaskuri()
391    {
392        pisteLaskuri = new IntMeter(0);
393
394        Label pisteNaytto = new Label();
395        pisteNaytto.IntFormatString = "Score: {0:D8}";
396        pisteNaytto.Font = Font.DefaultLargeBold;
397        pisteNaytto.X = Screen.Right - 250;
398        pisteNaytto.Y = Screen.Top - 50;
399        pisteNaytto.TextColor = Color.White;
400        pisteNaytto.Color = Color.Transparent;
401        pisteNaytto.BindTo(pisteLaskuri);
402        Add(pisteNaytto);
403    }
404
405    void LuoHedelmaLaskuri()
406    {
407        hedelmaLaskuri = new IntMeter(0);
408        hedelmaLaskuri.AddTrigger(100, TriggerDirection.Up, LisaElamaKasvaa);
409
410        Label hedelmaNaytto = new Label();
411        hedelmaNaytto.IntFormatString = "Fruits: {0:D3}";
412        hedelmaNaytto.Font = Font.DefaultLargeBold;
413        hedelmaNaytto.X = Screen.Right -700;
414        hedelmaNaytto.Y = Screen.Top - 50;
415        hedelmaNaytto.TextColor = Color.White;
416        hedelmaNaytto.Color = Color.Transparent;
417        hedelmaNaytto.BindTo(hedelmaLaskuri);
418        Add(hedelmaNaytto);
419    }
420
421    /*void LuoElamaLaskuri()
422    {
423        elamaLaskuri = new DoubleMeter(5);
424        elamaLaskuri.MaxValue = 5;
425        //elamaLaskuri.LowerLimit += ElamaLoppui;
426
427        Label elamapalkki = new Label();
428        ProgressBar elamaPalkki = new ProgressBar(150, 30);
429        elamaPalkki.X = Screen.Left + 100;
430        elamaPalkki.Y = Screen.Top - 100;
431        elamaPalkki.Angle = Angle.RightAngle;
432        elamaPalkki.BorderColor = Color.Black;
433        elamaPalkki.BarColor = Color.Red;
434        elamaPalkki.BindTo(elamaLaskuri);
435        Add(elamaPalkki, 3);
436    }*/
437
438    void LisaaNappaimet()
439    {
440        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
441        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
442
443        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -1);
444        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu oikealle", pelaaja1, 1);
445        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1);
446        Keyboard.Listen(Key.Up, ButtonState.Down, Liitele, "Liitelee huivipropellilla", pelaaja1);
447        Keyboard.Listen(Key.Up, ButtonState.Released, LopetaLiitely, "Lopettaa Liitelyn", pelaaja1);
448        Keyboard.Listen(Key.Space, ButtonState.Pressed, Hyokkaa, "Iskee huiviruoskalla", pelaaja1);
449        Keyboard.Listen(Key.Down, ButtonState.Pressed, Kyyristy, "Pelaaja kyyristyy", pelaaja1);
450        Keyboard.Listen(Key.Down, ButtonState.Released, Nouse, "Pelaaja kyyristyy", pelaaja1);
451
452
453        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
454
455        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -1);
456        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Liikkuu oikealle", pelaaja1, 1);
457        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1);
458        ControllerOne.Listen(Button.A, ButtonState.Down, Liitele, "Liitelee huivipropellilla", pelaaja1);
459        ControllerOne.Listen(Button.A, ButtonState.Released, LopetaLiitely, "Lopettaa liitelyn", pelaaja1);
460        ControllerOne.Listen(Button.X, ButtonState.Pressed, Hyokkaa, "Iskee huiviruoskalla", pelaaja1);
461        ControllerOne.Listen(Button.DPadDown, ButtonState.Pressed, Kyyristy, "Pelaaja kyyristyy", pelaaja1);
462        ControllerOne.Listen(Button.DPadDown, ButtonState.Released, Nouse, "Pelaaja kyyristyy", pelaaja1);
463
464        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
465    }
466
467    void Liikuta(Pelaaja hahmo, int suunta)
468    {
469        hahmo.Walk(suunta * hahmo.Liikkumisnopeus);
470
471        if (hahmo.VoiLiidella && suunta == 1)
472        {
473            huiviPropelli.Animation = HuiviPropelliPyorii;
474        }
475        else if (hahmo.VoiLiidella == true)
476        {
477            huiviPropelli.Animation = HuiviPropelliPeilattu;
478        }
479    }
480
481    void Hyppaa(Pelaaja hahmo)
482    {
483        hahmo.VoiLiidella = true;
484        hahmo.Jump(hahmo.Hyppynopeus);
485    }
486
487    void Hyokkaa(Pelaaja hahmo)
488    {
489        LisaaHuiviRuoska(RUUDUN_KOKO, RUUDUN_KOKO);
490        pelaaja1.PlayAnimation(new Animation(HyokkaysAnimaatio));
491        pelaaja1.Animation.FPS = 4;
492    }
493
494    void Kyyristy(Pelaaja hahmo)
495    {
496        hahmo.Liikkumisnopeus /= 1.5;
497        hahmo.Size = new Vector(hahmo.Width * 1.7, hahmo.Height * 0.5);
498        hahmo.Animation = new Animation(AbillyKyyristys);
499        //hahmo.Animation.Start();
500    }
501
502    void Nouse(Pelaaja hahmo)
503    {
504        hahmo.Liikkumisnopeus *= 1.5;
505        hahmo.Size = new Vector(hahmo.Width / 1.7, hahmo.Height / 0.5);
506    }
507
508    void Liitele(Pelaaja hahmo)
509    {
510        if (hahmo.VoiLiidella && hahmo.Velocity.Y < 0)
511        { 
512            hahmo.LinearDamping = 0.75;
513            huiviPropelli.IsVisible = true;
514            pelaaja1.AnimFall = new Animation(LiitelyAnimaatio);
515        }
516    }
517
518    void LopetaLiitely(Pelaaja hahmo)
519    {
520        hahmo.LinearDamping = 1.0;
521        huiviPropelli.IsVisible = false;
522        pelaaja1.AnimFall = new Animation(AbillyPudotus);
523    }
524
525    void TormaaHedelmaan(PhysicsObject hahmo, PhysicsObject hedelma)
526    {
527        maaliAani.Play();
528        //MessageDisplay.Add("Keräsit hedelmän!");
529        hedelmaLaskuri.Value += 1;
530        pisteLaskuri.Value += 50;
531        hedelma.Destroy();
532    }
533
534    void TormaaSydammeen(PhysicsObject hahmo, PhysicsObject sydan)
535    {
536        pisteLaskuri.Value += 70;
537        sydan.Destroy();
538    }
539
540    void TuhoaaVihun(PhysicsObject huiviRuoska, PhysicsObject Vihu)
541    {
542        pisteLaskuri.Value += 100;
543        Vihu.Destroy();
544    }
545
546    void LaatikkoTormaaVihuun(PhysicsObject laatikko, PhysicsObject Vihu)
547    {
548        pisteLaskuri.Value += 100;
549        Vihu.Destroy();
550        laatikko.Destroy();
551    }
552
553    void TormaaVihuun(PhysicsObject hahmo, PhysicsObject Vihu)
554    {
555        //pelaaja1.Animation.FPS = 7;
556        //pelaaja1.PlayAnimation(new Animation(kirkleKipu));
557    }
558
559    void LisaElamaKasvaa()
560    {
561        lisaElamaLaskuri.Value += 1;
562    }
563
564    protected override void Update(Time time)
565    {
566        base.Update(time);
567
568        if (huiviRuoska != null)
569        {
570            huiviRuoska.X = pelaaja1.X + pelaaja1.FacingDirection.GetVector().X * (pelaaja1.Width / 2 + huiviRuoska.Width / 2);
571            huiviRuoska.Y = pelaaja1.Y + 7;
572        }
573    }
574}
Note: See TracBrowser for help on using the repository browser.