source: 2016/23/EelisK/MiroonWeeaboo/MiroonWeeaboo/MiroonWeeaboo/MiroonWeeaboo.cs @ 7239

Revision 7239, 13.9 KB checked in by jotapoti, 3 years ago (diff)

Axelin ja Eelisken tekemät pelit

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8class KaytettavaObjekti : PhysicsObject
9{
10    private Action toiminto;
11    public Action Toiminto
12    {
13        set { toiminto = value; }
14        get { return toiminto; }
15    }
16
17    private Vector käyttöpaikka;
18    public Vector Käyttöpaikka
19    {
20        get { return käyttöpaikka; }
21        set { käyttöpaikka = value; }
22    }
23
24    private Image käyttöKuva;
25    public Image KäyttöKuva
26    {
27        get { return käyttöKuva; }
28        set { käyttöKuva = value; }
29    }
30
31
32    public KaytettavaObjekti(double leveys, double korkeus)
33        : base(leveys, korkeus)
34    {
35    }
36}
37public class MiroonWeeaboo : PhysicsGame
38{
39    private Animation moottoriskene;
40    private Animation taloanimaatio;
41    private Animation Herääminen;
42    private Animation kavely;
43    const double nopeus = 35;
44    const double hyppyNopeus = 750;
45
46    KaytettavaObjekti kohdeObjekti;
47    PlatformCharacter pelaaja1;
48
49    Timer ajastin1 = new Timer();
50   
51   
52    Vector pelaajanTuloPaikka = new Vector(-50, -40);
53    Vector ScraptownTulopaikka = new Jypeli.Vector(-270, -40);
54   
55    Vector ekuvantulopaikka = new Vector(40, 0);
56    Image pelaajanKuva = LoadImage("Maincharacter");
57    Image townkuva = LoadImage("scraptown");
58    Image tahtiKuva = LoadImage("tahti");
59    Image Ekuva = LoadImage("icone");
60    //SoundEffect kavelyAani = LoadSoundEffect("walkingsound");
61    SoundEffect maaliAani = LoadSoundEffect("maali");
62    Image townkuvaoff = LoadImage("scraptownlightsoff");
63    Vector kytkinpaikka = new Vector(55, -10);
64    Vector baarinpaikka = new Jypeli.Vector(-125, -10);
65    Vector moponpaikka = new Vector(40, 0);
66    Vector radionpaikka = new Vector(0, 0);
67    Vector tukikohdanpaikka = new Vector(270, -10);
68
69    public override void Begin()
70    {
71        SetWindowSize(800, 450);
72        Gravity = new Vector(0, -1000);
73        SmoothTextures = false;
74        IsMouseVisible = false;
75        Ekacutscene();
76        //
77        //d LuoKentta();
78        //MoottoriSkene();
79        Camera.Follow(pelaaja1);
80        Camera.ZoomFactor = 1;
81   
82        Camera.StayInLevel = true;
83    }
84   
85
86    void Ekacutscene()
87       
88
89    {
90        ClearAll();
91        Level.Height = 90;
92        Level.Width = 160;
93        Herääminen = LoadAnimation("Cutscene1");
94        Level.Background.Animation = Herääminen;
95        Level.Background.Animation.Start();
96       // LuoKentta();
97       Timer.SingleShot(13.7, LuoKentta);
98    }
99    void MoottoriSkene()
100
101
102    {
103       ClearAll();
104        Level.Height = 90;
105        Level.Width = 160;
106        moottoriskene = LoadAnimation("moottoripyöräcut");
107        Level.Background.Animation = moottoriskene;
108        Level.Background.Animation.Start();
109        // LuoKentta();
110        Timer.SingleShot(5, Scraptown);
111    }
112    void LuoKentta()
113    {
114       
115         
116        LisaaPelaaja(pelaajanTuloPaikka, 32, 32);
117       
118        Mopo(moponpaikka, 10, 10);
119        SammutaRadio(radionpaikka, 10, 10);
120       
121        Level.Height = 90;
122       Level.Width = 160;
123        LisaaKävelyTaso();
124        Level.CreateBorders();
125
126        LisaaNappaimet();
127         taloanimaatio = LoadAnimation("taloliikkuu");
128         Level.Background.Animation = taloanimaatio;
129         Level.Background.Animation.Start();
130        MediaPlayer.Play("talonradio");
131        Surfaces s = Level.CreateBorders(false);
132        s.Left.Tag = "maa";
133        s.Right.Tag = "maa";
134        s.Top.Tag = "maa";
135
136        Timer Ajastin = new Timer();
137        Ajastin.Interval = 0.1;
138        Ajastin.Timeout += delegate
139        {
140            KaytettavaObjekti Objekti = null;
141            foreach (GameObject oobj in GetObjectsWithTag("kohde"))
142            {
143                KaytettavaObjekti obj = oobj as KaytettavaObjekti;
144                if (obj != null)
145                {
146                    if (Math.Abs(pelaaja1.X - (obj.X + obj.Käyttöpaikka.X)) < 10.0)
147                    {
148                        Objekti = obj;
149                    }
150                }
151
152            }
153            if (Objekti == null)
154            {
155                //jos ei olla minkään kohdalla piilotetaan e kuvat
156                if (kohdeObjekti != null)
157                {
158                    kohdeObjekti.Image = null;
159                }
160                kohdeObjekti = null;
161                //tikasonlahella = false;
162            }else // jos ollaan kohteen päällä näytetään e kuva
163            {
164
165                Objekti.Image = Ekuva;
166                kohdeObjekti = Objekti;
167            }
168
169        };
170        Ajastin.Start();
171    }
172    void Scraptown()
173    {
174
175        Level.Height = 120;
176        Level.Width = 600;
177        LisaaPelaaja(ScraptownTulopaikka, 32, 32);
178        LataaKytkin(kytkinpaikka, 10, 10);
179        Camera.Follow(pelaaja1);
180        Baariovi(baarinpaikka, 10, 10);
181        PhysicsObject taso = LisaaKävelyTaso();
182        taso.Position = new Vector(0, -72);
183        Level.CreateBorders();
184        MediaPlayer.Play("scrapcitysound");
185        Level.Background.Image = townkuva;
186        LisaaNappaimet();
187        LataaTukikohta(tukikohdanpaikka, 10, 10);
188        Surfaces s = Level.CreateBorders(false);
189        s.Left.Tag = "maa";
190        s.Right.Tag = "maa";
191        s.Top.Tag = "maa";
192
193        Timer Ajastin = new Timer();
194        Ajastin.Interval = 0.1;
195        Ajastin.Timeout += delegate
196        {
197            KaytettavaObjekti Objekti = null;
198            foreach (GameObject oobj in GetObjectsWithTag("kohde"))
199            {
200                KaytettavaObjekti obj = oobj as KaytettavaObjekti;
201                if (obj != null)
202                {
203                    if (Math.Abs(pelaaja1.X - (obj.X + obj.Käyttöpaikka.X)) < 10.0)
204                    {
205                        Objekti = obj;
206                    }
207                }
208
209            }
210            if (Objekti == null)
211            {
212                //jos ei olla minkään kohdalla piilotetaan e kuvat
213                if (kohdeObjekti != null)
214                {
215                    kohdeObjekti.Image = null;
216                }
217                kohdeObjekti = null;
218                //tikasonlahella = false;
219            }
220            else // jos ollaan kohteen päällä näytetään e kuva
221            {
222
223                Objekti.Image = Ekuva;
224                kohdeObjekti = Objekti;
225            }
226
227        };
228        Ajastin.Start();
229    }
230
231    PhysicsObject LisaaKävelyTaso()
232    {
233        PhysicsObject taso = PhysicsObject.CreateStaticObject(Level.Width, 38);
234        taso.Tag = "maa";
235        taso.Bottom = Level.Bottom;
236        taso.Color = Color.Transparent;
237        taso.Position = new Vector(0, -51);
238        Add(taso);
239        return taso;
240    }
241
242    void LisaaTahti(Vector paikka, double leveys, double korkeus)
243    {
244        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
245        tahti.IgnoresCollisionResponse = true;
246        tahti.Position = paikka;
247        tahti.Image = tahtiKuva;
248        tahti.Tag = "tahti";
249        Add(tahti);
250    }
251
252    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
253    {
254
255
256        pelaaja1 = new PlatformCharacter(leveys, korkeus);
257        pelaaja1.Position = paikka;
258        pelaaja1.Mass = 4.0;
259        pelaaja1.Image = pelaajanKuva;
260        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
261        kavely = LoadAnimation("mainukko");
262        pelaaja1.Animation = new Animation(kavely);
263        pelaaja1.AnimWalk = new Animation(kavely);
264          MediaPlayer.Play("scrapcitysound");
265       
266        pelaaja1.AnimIdle = new Animation(pelaajanKuva);
267        Add(pelaaja1);
268    }
269
270    void LisaaNappaimet()
271    {
272        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
273        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
274         Keyboard.Listen(Key.E, ButtonState.Pressed, Aktivoi, "Puhuu");
275        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
276        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
277        // Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
278
279        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
280
281        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
282        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
283        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
284
285        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
286    }
287    void Mopo(Vector paikka, double leveys ,double korkeus )
288
289    {
290       
291        KaytettavaObjekti mopo = new KaytettavaObjekti(leveys, korkeus);
292        mopo.IgnoresPhysicsLogics = true;
293        mopo.Käyttöpaikka = new Vector(0,0);
294       
295       
296        mopo.Tag = "kohde";
297        mopo.IgnoresCollisionResponse = true;
298        mopo.Position = paikka;
299        mopo.Color = Color.Transparent;
300        mopo.Toiminto += delegate
301        {
302
303            MoottoriSkene();
304            MediaPlayer.Stop();
305        };
306        Add(mopo);
307
308    }
309    void LataaTukikohta(Vector paikka, double leveys, double korkeus)
310
311    {
312        KaytettavaObjekti tukikohta = new KaytettavaObjekti(leveys, korkeus);
313        tukikohta.IgnoresPhysicsLogics = true;
314        tukikohta.Käyttöpaikka = new Vector(0, 0);
315
316        tukikohta.Tag = "kohde";
317        tukikohta.IgnoresCollisionResponse = true;
318        tukikohta.Position = paikka;
319        tukikohta.Color = Color.Transparent;
320        tukikohta.Toiminto += delegate
321        {
322
323            {
324
325                Exit();
326               
327            }
328        };
329        Add(tukikohta);
330    }
331    void LataaKytkin(Vector paikka, double leveys, double korkeus)
332
333    {
334        KaytettavaObjekti kytkin = new KaytettavaObjekti(leveys, korkeus);
335        kytkin.IgnoresPhysicsLogics = true;
336        kytkin.Käyttöpaikka = new Vector(0, 0);
337
338        kytkin.Tag = "kohde";
339        kytkin.IgnoresCollisionResponse = true;
340        kytkin.Position = paikka;
341        kytkin.Color = Color.Transparent;
342        kytkin.Toiminto += delegate
343        {
344
345            {
346                Level.Background.Image = townkuvaoff;
347                kytkin.Destroy();
348                ValotPäälle(kytkinpaikka, 10, 10);
349            }
350        };
351        Add(kytkin);
352    }
353    void ValotPäälle(Vector paikka, double leveys, double korkeus)
354    {
355        KaytettavaObjekti kytkin1 = new KaytettavaObjekti(leveys, korkeus);
356        kytkin1.Tag = "kohde";
357        kytkin1.IgnoresCollisionResponse = true;
358        kytkin1.Käyttöpaikka = new Vector(0, 0);
359        kytkin1.Position = paikka;
360        kytkin1.Color = Color.Transparent;
361        kytkin1.Toiminto += delegate
362        {
363            {
364                Level.Background.Image = townkuva;
365                kytkin1.Destroy();
366                LataaKytkin(kytkinpaikka, 10, 10);
367            }
368        };
369        Add(kytkin1);
370    }
371        void Baariovi(Vector paikka, double leveys, double korkeus)
372
373    {
374        KaytettavaObjekti baariovi = new KaytettavaObjekti(leveys, korkeus);
375        baariovi.IgnoresPhysicsLogics = true;
376        baariovi.Käyttöpaikka = new Vector(0, 0);
377
378        baariovi.Tag = "kohde";
379        baariovi.IgnoresCollisionResponse = true;
380        baariovi.Position = paikka;
381        baariovi.Color = Color.Transparent;
382        baariovi.Toiminto += delegate
383        {
384
385            {
386                Exit();
387
388            }
389        };
390        Add(baariovi);
391    }
392    void SammutaRadio(Vector paikka, double leveys, double korkeus)
393
394    {
395
396        KaytettavaObjekti radio = new KaytettavaObjekti(leveys, korkeus);
397        radio.IgnoresPhysicsLogics = true;
398        radio.Käyttöpaikka = new Vector(0, 0);
399       
400
401        radio.Tag = "kohde";
402        radio.IgnoresCollisionResponse = true;
403        radio.Position = paikka;
404        radio.Color = Color.Transparent;
405        radio.Toiminto += delegate
406        {
407
408            {
409                           
410
411                MediaPlayer.Stop();
412                MediaPlayer.Play("humina_parempi");
413                radio.Destroy();
414                radiopaalla(radionpaikka, 10, 10);
415
416            }
417           
418               
419         
420     
421               
422           
423        };
424        Add(radio);
425
426    }
427    void radiopaalla(Vector paikka, double leveys, double korkeus)
428    {
429        KaytettavaObjekti radio1 = new KaytettavaObjekti(leveys, korkeus);
430        radio1.IgnoresPhysicsLogics = true;
431        radio1.Käyttöpaikka = new Vector(0, 0);
432
433
434        radio1.Tag = "kohde";
435        radio1.IgnoresCollisionResponse = true;
436        radio1.Position = paikka;
437        radio1.Color = Color.Transparent;
438        radio1.Toiminto += delegate
439        {
440
441            {
442
443               
444                MediaPlayer.Play("talonradio");
445                radio1.Destroy();
446                SammutaRadio(radionpaikka, 10, 10);
447
448
449
450
451            }
452
453
454
455
456
457
458        };
459        Add(radio1);
460    }
461
462    void Liikuta(PlatformCharacter hahmo, double nopeus)
463    {
464        hahmo.Walk(nopeus);
465       
466
467    }
468
469    void Hyppaa(PlatformCharacter hahmo, double nopeus)
470    {
471        hahmo.Jump(nopeus);
472    }
473
474    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
475    {
476        maaliAani.Play();
477        MessageDisplay.Add("Keräsit tähden!");
478        tahti.Destroy();
479    }
480
481    void Aktivoi()
482    {
483        if (kohdeObjekti != null)
484        {
485            kohdeObjekti.Toiminto();
486        }
487    }
488}
Note: See TracBrowser for help on using the repository browser.