source: 2013/30/TapaniS/Cat of Darkness/Cat of Darkness/Cat of Darkness/Cat_of_Darkness.cs @ 4673

Revision 4673, 14.2 KB checked in by tasalmik, 6 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 Cat_of_Darkness : PhysicsGame
10{
11    private Animation MiukkunLiike;
12    private Animation MiukkunLepo;
13    private Animation Miukkunhyppy;
14    private Animation RottaIsku;
15    private Animation RottaLiikkuu;
16    private Animation MiukkunIsku;
17    private Animation JattiRottaIsku;
18    private Animation JattiRottaLepo;
19    private Animation JattiRottaLiikkuu;
20    private Animation MiukkunPisto;
21    private Animation ZeppeliniFly;
22    private Animation MikkiLiike;
23    private Animation MikkiIsku;
24    private Animation MikkiLepo;
25    private Animation MiukkuPuukko;
26
27    Image taustaKuva = LoadImage("Kenttä 1");
28    Image taustaKuva2 = LoadImage("Map 2");
29    Image taustaKuva3 = LoadImage("JUUUSkENTTÄ");
30
31    Image[] RottaKuvat = LoadImages("Rotta", "Rotta1");
32    DoubleMeter elamaLaskuri;
33    DoubleMeter bossiLaskuri;
34    DoubleMeter MikkiLaskuri;
35
36    PlatformCharacter miukku;
37    PlatformCharacter Jattirotta;
38    PlatformCharacter MikkiRotta;
39    PlatformCharacter juus;
40    GameObject zeppelini;
41    Timer ajastin;
42    int kenttanumero = 3;
43
44
45
46    public override void Begin()
47    {
48        MiukkunLiike = LoadAnimation("MiukkunLiike");
49        MiukkunLepo = LoadAnimation("MiukkunLepo");
50        Miukkunhyppy = LoadAnimation("MiukkunHyppy");
51        MiukkunPisto = LoadAnimation("MiukkunPisto");
52        RottaIsku = new Animation(RottaKuvat);
53        RottaLiikkuu = LoadAnimation("RottaLiikkuu");
54        MiukkunIsku = LoadAnimation("MiukkunIsku");
55        JattiRottaIsku = LoadAnimation("JattiRottaIsku");
56        JattiRottaLepo = LoadAnimation("JattiRottaLepo");
57        JattiRottaLiikkuu = LoadAnimation("JattiRottaLiikkuu");
58        JattiRottaIsku.FPS = 3;
59        ZeppeliniFly = LoadAnimation("Zeppelini");
60        MikkiLiike = LoadAnimation("MikkiLiike");
61        MikkiIsku = LoadAnimation("MikkiIsku");
62        MikkiLepo = LoadAnimation("MikkiLepo");
63        MiukkuPuukko = LoadAnimation("MiukkuPuukko");
64
65
66        AlkuValikko();
67    }
68
69    void SeuraavaKentta()
70    {
71        kenttanumero++;
72        AlotaPeli();
73    }
74
75   void AlotaPeli()
76   {
77        ClearAll();
78        if (kenttanumero == 1)
79        {
80            Level.Background.Image = taustaKuva;
81
82            PhysicsObject kirjahylly = PhysicsObject.CreateStaticObject(130.0, 70.0);
83            Add(kirjahylly);
84            kirjahylly.Y = -190;
85            kirjahylly.X = 437;
86            kirjahylly.Color = Color.Transparent;
87
88
89            PhysicsObject palkki = PhysicsObject.CreateStaticObject(1000.0, 5.0);
90            palkki.Shape = Shape.Rectangle;
91            palkki.Y = -257;
92            Add(palkki);
93            palkki.Color = Color.Transparent;
94
95            PhysicsObject tuoli = PhysicsObject.CreateStaticObject(71.0, 70);
96            tuoli.Shape = Shape.Rectangle;
97            tuoli.Y = -210;
98            tuoli.X = -70;
99            Add(tuoli);
100            tuoli.Color = Color.Transparent;
101
102            ajastin = new Timer();
103            ajastin.Interval = 1;
104            ajastin.Timeout += LuoRotta;
105            ajastin.Start();
106
107            Timer.SingleShot(20, LuoJattiRotta);
108        }
109        if (kenttanumero == 2)
110        {
111            Level.Background.Image = taustaKuva2;
112
113            PhysicsObject taso = PhysicsObject.CreateStaticObject(1000.0, 5.0);
114            taso.Y = -232;
115            Add(taso);
116            taso.Color = Color.Transparent;
117
118            PhysicsObject taso1 = PhysicsObject.CreateStaticObject(185, 50);
119            Add(taso1);
120            taso1.Color = Color.Transparent;
121            taso1.Y = -197;
122            taso1.X = -410;
123
124            PhysicsObject taso2 = PhysicsObject.CreateStaticObject(188, 50);
125            taso2.Y = -197;
126            taso2.X = 29;
127            Add(taso2);
128            taso2.Color = Color.Transparent;
129
130            //PhysicsObject zeppelinitaso1 = PhysicsObject.CreateStaticObject(1000.0, 5.0);
131            //Add(zeppelinitaso1);
132            //zeppelinitaso1.Y = 200;
133            //zeppelinitaso1.Color = Color.Black;
134
135            zeppelini = new GameObject(110, 50);
136            zeppelini.Image = LoadImage("Zeppeline");
137            zeppelini.Y = 236;
138            zeppelini.Oscillate(new Vector(1, 0), 330, 0.06);
139            //zeppelini.IgnoresPhysicsLogics = true;
140           
141            Add(zeppelini);
142
143            PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
144            tasoAivot.Speed = 100;
145            //zeppelini.Brain = tasoAivot;
146           
147            zeppelini.Animation = ZeppeliniFly;
148
149            ajastin = new Timer();
150            ajastin.Interval = 3;
151            ajastin.Timeout += LuoRotta;
152            ajastin.Start();
153            Timer.SingleShot(30, LuoMikkiRotta);
154
155        }
156        if (kenttanumero == 3)
157        {
158            Level.Background.Image = taustaKuva3;
159
160            juus = new PlatformCharacter(100.0, 100.0);
161            juus.Image = LoadImage("Juus");
162            Add(juus);
163        }
164
165        Level.Background.FitToLevel();
166        Camera.ZoomToLevel();
167
168        PhysicsObject oikeareuna = PhysicsObject.CreateStaticObject(5.0, 800.0);
169        oikeareuna.Shape = Shape.Rectangle;
170        Add(oikeareuna);
171        oikeareuna.Color = Color.Black;
172        oikeareuna.X = 500;
173
174        PhysicsObject vasenreuna = PhysicsObject.CreateStaticObject(5.0, 800.0);
175        vasenreuna.Shape = Shape.Rectangle;
176        Add(vasenreuna);
177        vasenreuna.Color = Color.Black;
178        vasenreuna.X = -500;
179
180        Gravity = new Vector(0.0, -755.0);
181
182        miukku = new PlatformCharacter ( 100.0, 100.0);
183        miukku.Image = LoadImage("Miukkuli");
184        Add (miukku);
185        LiikutaMiukkua(miukku);
186        miukku.AnimWalk = MiukkunLiike;
187        miukku.AnimWalk.FPS = 6;
188        miukku.AnimIdle = MiukkunLepo;
189        miukku.AnimJump = Miukkunhyppy;
190        LuoElamaLaskuri();
191        AddCollisionHandler(miukku, "rotta", TormaaRottaan);
192        AddCollisionHandler(miukku, "JattiRotta", TormaaJattiRottaan);
193        AddCollisionHandler(miukku, "MikkiRotta", TormaaMikkiRottaan);
194
195       
196       
197        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
198        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
199    }
200
201    void LiikutaMiukkua(PlatformCharacter miukku)
202    {
203     
204        Keyboard.Listen( Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", miukku, -150.0 );
205        Keyboard.Listen( Key.Right, ButtonState.Down, Liikuta, "Liikkuu oikealle", miukku, 150.0 );
206        Keyboard.Listen( Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", miukku, 700.0 );
207        Keyboard.Listen(Key.A, ButtonState.Pressed, Iske, "Pelaaja iskee", miukku);
208        Keyboard.Listen(Key.S, ButtonState.Pressed, Pisto, "Pelaaja pistaa", miukku);
209        Keyboard.Listen(Key.D, ButtonState.Pressed, Puukko, "Pelaaja puukottaa", miukku);
210    }
211    void Liikuta(PlatformCharacter miukku, double nopeus)
212
213    {
214        miukku.Walk(nopeus);
215
216    }
217
218    void Iske(PlatformCharacter miukku)
219    {
220        PhysicsObject osuma = PhysicsObject.CreateStaticObject(30.0, 60.0);
221        osuma.Position = miukku.Position + miukku.FacingDirection.GetVector() * 70;
222        osuma.IgnoresCollisionResponse = false;
223        osuma.Color = Color.Transparent;
224
225        Add(osuma);
226        MiukkunIsku.FPS = 6;
227        miukku.PlayAnimation(MiukkunIsku);
228        Timer.SingleShot(0.1, osuma.Destroy);
229        AddCollisionHandler(osuma, "rotta", OsuRottaan);
230        AddCollisionHandler(osuma, "JattiRotta", OsuJattiRottaan);
231
232    }
233
234    void Hyppaa( PlatformCharacter miukku, double nopeus )
235    {
236        miukku.Jump(nopeus);
237    }
238    void Pisto(PlatformCharacter miukku)
239    {
240        PhysicsObject osuma = PhysicsObject.CreateStaticObject(60.0, 30.0);
241        osuma.Position = miukku.Position + miukku.FacingDirection.GetVector() * 70;
242        osuma.IgnoresCollisionResponse = false;
243        osuma.Color = Color.Transparent;
244
245        Add(osuma);
246
247       
248        MiukkunPisto.FPS = 6;
249        miukku.PlayAnimation(MiukkunPisto);
250        Timer.SingleShot(0.1, osuma.Destroy);
251        AddCollisionHandler(osuma, "rotta", OsuRottaan);
252        AddCollisionHandler(osuma, "JattiRotta", OsuJattiRottaan);
253        AddCollisionHandler(osuma, "MikkiRotta", OsuMikkiRottaan);
254    }
255
256
257    void Puukko(PlatformCharacter miukku)
258    {
259        PhysicsObject osuma = PhysicsObject.CreateStaticObject(50.0, 20.0);
260        osuma.Position = miukku.Position + new Vector(0, 60);
261        osuma.IgnoresCollisionResponse = false;
262        osuma.Color = Color.Transparent;
263
264        Add(osuma);
265
266
267        MiukkuPuukko.FPS = 5;
268        miukku.PlayAnimation(MiukkuPuukko);
269        Timer.SingleShot(0.1, osuma.Destroy);
270        AddCollisionHandler(osuma, "rotta", OsuRottaan);
271        AddCollisionHandler(osuma, "JattiRotta", OsuJattiRottaan);
272
273
274    }
275
276
277    void OsuRottaan(PhysicsObject osuma, PhysicsObject rotta)
278    {
279        rotta.Destroy();
280    }
281
282    void LuoRotta()
283    {
284        PlatformCharacter rotta = new PlatformCharacter(70.0, 70.0);
285        rotta.AnimIdle = RottaIsku;
286        rotta.AnimIdle.FPS = 6;
287        rotta.AnimWalk = RottaLiikkuu;
288        rotta.AnimWalk.FPS = 6;
289        Add(rotta);
290        rotta.Tag = "rotta";
291
292        if (kenttanumero == 1)
293        {
294            rotta.Y = -250;
295        }
296        if (kenttanumero == 2)
297        {
298            rotta.Position = zeppelini.Position;
299        }
300
301        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
302        tasoAivot.Speed = 100;
303
304        rotta.Brain = tasoAivot;
305
306        tasoAivot.FallsOffPlatforms = true;
307        tasoAivot.JumpSpeed = 300;
308        tasoAivot.TriesToJump = true;
309
310    }
311
312    void LuoElamaLaskuri()
313    {
314        elamaLaskuri = new DoubleMeter(15);
315        elamaLaskuri.MaxValue = 10;
316        elamaLaskuri.LowerLimit += ElamaLoppui;
317
318        ProgressBar elamaPalkki = new ProgressBar(150, 20);
319        elamaPalkki.X = Screen.Left + 150;
320        elamaPalkki.Y = Screen.Top - 20;
321        elamaPalkki.BindTo(elamaLaskuri);
322        Add(elamaPalkki);
323    }
324
325    void ElamaLoppui()
326    {
327        MessageDisplay.Add("Elämät loppuivat, voi voi.");
328        miukku.Destroy();
329        Timer.SingleShot(2,AlkuValikko);
330    }
331
332    void TormaaRottaan(PhysicsObject miukku, PhysicsObject rotta )
333    {
334        elamaLaskuri.Value--;
335    }
336
337    void AlkuValikko()
338    {
339        ClearAll();
340        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko", "Aloita peli", "Parhaat pisteet", "Lopeta");
341        Add(alkuValikko);
342        alkuValikko.AddItemHandler(0, AlotaPeli);
343        //alkuValikko.AddItemHandler(1, ParhaatPisteet);
344        alkuValikko.AddItemHandler(2, Exit);
345
346
347    }
348    void LuoJattiRotta()
349    {
350        ajastin.Stop();
351
352        Jattirotta = new PlatformCharacter(170.0, 170.0);
353        Jattirotta.AnimIdle = JattiRottaLepo;
354        Jattirotta.AnimIdle.FPS = 6;
355        Jattirotta.AnimWalk = JattiRottaLiikkuu;
356        Jattirotta.AnimWalk.FPS = 6;
357        Add(Jattirotta);
358        Jattirotta.Tag = "JattiRotta";
359        Jattirotta.Y = -200;
360        Jattirotta.X = 300;
361
362        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
363        tasoAivot.Speed = 80;
364
365        Jattirotta.Brain = tasoAivot;
366
367        tasoAivot.FallsOffPlatforms = true;
368        tasoAivot.JumpSpeed = 200;
369        tasoAivot.TriesToJump = true;
370        LuoBossiLaskuri();
371    }
372    void TormaaJattiRottaan(PhysicsObject miukku, PhysicsObject JattiRotta)
373    {
374        elamaLaskuri.Value-=2;
375        Jattirotta.PlayAnimation(JattiRottaIsku);
376
377    }
378    void LuoBossiLaskuri()
379    {
380        bossiLaskuri = new DoubleMeter(10);
381        bossiLaskuri.MaxValue = 10;
382        bossiLaskuri.LowerLimit += BossinElamaLoppui;
383
384        ProgressBar bossiPalkki = new ProgressBar(150, 20);
385        bossiPalkki.X = Screen.Right - 150;
386        bossiPalkki.Y = Screen.Top - 20;
387        bossiPalkki.BindTo(bossiLaskuri);
388        Add(bossiPalkki);
389    }
390    void BossinElamaLoppui()
391    {
392        MessageDisplay.Add("JättiRotta piesty! Siirryt seuraavaan leveliin.");
393        Jattirotta.Destroy();
394        Timer.SingleShot(2, SeuraavaKentta);
395    }
396
397    void OsuJattiRottaan(PhysicsObject osuma, PhysicsObject jattirotta)
398    {
399        bossiLaskuri.Value--;
400    }
401
402    void LuoMikkiRotta()
403    {
404        MikkiRotta = new PlatformCharacter(70.0, 70.0);
405        MikkiRotta.AnimIdle = MikkiLepo;
406        MikkiRotta.AnimIdle.FPS = 6;
407        MikkiRotta.AnimWalk = MikkiLiike;
408        MikkiRotta.AnimWalk.FPS = 6;
409        Add(MikkiRotta);
410        MikkiRotta.Tag = "MikkiRotta";
411        MikkiRotta.Y = -200;
412        MikkiRotta.X = 300;
413
414        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
415        tasoAivot.Speed = 120;
416
417        MikkiRotta.Brain = tasoAivot;
418
419        tasoAivot.FallsOffPlatforms = true;
420        tasoAivot.JumpSpeed = 500;
421        tasoAivot.TriesToJump = true;
422        LuoMikkiLaskuri();
423
424    }
425
426    void TormaaMikkiRottaan(PhysicsObject miukku, PhysicsObject MikkiRotta)
427    {
428        elamaLaskuri.Value -= 2;
429        ((PlatformCharacter)MikkiRotta).PlayAnimation(MikkiIsku);
430    }
431
432    void LuoMikkiLaskuri()
433    {
434        MikkiLaskuri = new DoubleMeter(10);
435        MikkiLaskuri.MaxValue = 10;
436        MikkiLaskuri.LowerLimit += MikkiRotanElamaLoppui;
437
438        ProgressBar MikkiPalkki = new ProgressBar(150, 20);
439        MikkiPalkki.X = Screen.Right - 150;
440        MikkiPalkki.Y = Screen.Top - 20;
441        MikkiPalkki.BindTo(MikkiLaskuri);
442        Add(MikkiPalkki);
443    }
444    void MikkiRotanElamaLoppui()
445    {
446        MessageDisplay.Add("MikkiRotta piesty! Siirryt Bossille!");
447        MikkiRotta.Destroy();
448        //Timer.SingleShot(2, PaaBossi);
449    }
450
451    void OsuMikkiRottaan(PhysicsObject osuma, PhysicsObject MikkiRotta)
452    {
453        MikkiLaskuri.Value--;
454    }
455
456 
457    void LuoPaaBossi()
458    {
459        juus = new PlatformCharacter(100.0, 100.0);
460        juus.Image = LoadImage("Juus");
461        Add(juus);
462
463
464
465    }
466
467
468
469}
Note: See TracBrowser for help on using the repository browser.