source: 2013/24/SamiS/Colajump/Colajump/Colajump/Colajump.cs @ 4157

Revision 4157, 10.8 KB checked in by sasyvane, 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 Colajump : PhysicsGame
10{
11    const double nopeus = 600;
12    double hyppyNopeus = 1200;
13    const int RUUDUN_KOKO = 40;
14
15    int KenttaNro = 1;
16
17   
18    PlatformCharacter pelaaja1;
19   
20    Image pelaajanKuva = LoadImage("hullu mies jota samu sanoi hitleriksi2");
21    Image ColaKuva = LoadImage("cola");
22    Image Ranskiskuva = LoadImage("ranskalaiset");
23    Image HamppariKuva = LoadImage("pixel_burger uusi");
24    Image taustakuva = LoadImage("forest");
25    Image Maalikuva = LoadImage("Maali");
26
27    SoundEffect maaliAani = LoadSoundEffect("Aani");
28    SoundEffect nauru = LoadSoundEffect("nauru");
29
30   
31    public override void Begin()
32    {
33
34        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko",
35        "Aloita peli", "Lopeta");
36        Add(alkuValikko);
37        alkuValikko.AddItemHandler(0, AloitaPeli);
38        alkuValikko.AddItemHandler(1, Exit);
39        alkuValikko.DefaultCancel = 2;
40        alkuValikko.Color = Color.Emerald;
41    }
42
43    /*
44    void Valikko()
45    {
46        ClearAll();
47
48        valikonKohdat = new List<Label>();
49        Label kohta2 = new Label("Parhaat pisteet");
50        kohta2.Position = new Vector(0, 0);
51        valikonKohdat.Add(kohta2);
52
53        Label kohta3 = new Label("Lopeta peli");
54        kohta3.Position = new Vector(0, -40);
55        valikonKohdat.Add(kohta3);
56
57        Label kohta1 = new Label("Aloita uusi peli"); 
58        kohta1.Position = new Vector(0, 40); 
59        valikonKohdat.Add(kohta1); 
60
61        foreach (Label valikonKohta in valikonKohdat)
62        Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, AloitaPeli, null);
63        Mouse.ListenOn(kohta2, MouseButton.Left, ButtonState.Pressed, ParhaatPisteet, null);
64        Mouse.ListenOn(kohta3, MouseButton.Left, ButtonState.Pressed, Exit, null);
65
66            Add(valikonKohta);
67    }*/
68
69    void LuoKentta(string KenttaTiedostonNimi)
70    {
71        TileMap kentta = TileMap.FromLevelAsset(KenttaTiedostonNimi);
72        kentta.SetTileMethod('#', LisaaTaso);
73        kentta.SetTileMethod('C', LisaaCola);
74        kentta.SetTileMethod('N', LisaaPelaaja);
75        kentta.SetTileMethod('P', LisaaPiikki);
76        kentta.SetTileMethod('R', LisaaRanskalaiset);
77        kentta.SetTileMethod('H', LisaaHamppari);
78        kentta.SetTileMethod('M', LisaaMaali);
79        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
80        Level.CreateBorders();
81        Level.Background.CreateGradient(Color.Black, Color.Black);
82        Level.Background.Image = taustakuva;
83    }
84
85    /*
86    void ValikossaLiikkuminen(AnalogState hiirenTila)
87    {
88        foreach (Label kohta in valikonKohdat)
89        {
90            if (Mouse.IsCursorOn(kohta))
91            {
92                kohta.TextColor = Color.Red;
93            }
94            else
95            {
96                kohta.TextColor = Color.Black;
97            }
98
99        }
100    }*/
101
102    void AloitaPeli()
103    {
104        LuoPisteLaskuri();
105
106        MediaPlayer.Play("tausta");
107
108        SeuraavaKentta();
109        Camera.Follow(pelaaja1);
110        Camera.ZoomFactor = 1.2;
111        Camera.StayInLevel = true;
112    }
113
114    void ParhaatPisteet()
115    {
116
117    }
118
119    void LisaaTaso(Vector paikka, double leveys, double korkeus)
120    {
121        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
122        taso.Position = paikka;
123        taso.Color = Color.YellowGreen;
124        Add(taso);
125    }
126
127    void LisaaCola(Vector paikka, double leveys, double korkeus)
128    {
129        PhysicsObject Cola = PhysicsObject.CreateStaticObject(30, 70);
130        Cola.IgnoresCollisionResponse = true;
131        Cola.Position = paikka;
132        Cola.Image = ColaKuva;
133        Cola.Tag = "Cola";
134       
135
136        Add(Cola);
137    }
138    void LisaaRanskalaiset(Vector paikka, double leveys, double korkeus)
139    {
140        PhysicsObject Ranskalaiset = PhysicsObject.CreateStaticObject(40, 50);
141        Ranskalaiset.IgnoresCollisionResponse = true;
142        Ranskalaiset.Position = paikka;
143        Ranskalaiset.Image = Ranskiskuva;
144        Ranskalaiset.Tag = "Ranskalaiset";
145
146        Add(Ranskalaiset);
147    }
148    void LisaaHamppari(Vector paikka, double leveys, double korkeus)
149    {
150        PhysicsObject Hamppari = PhysicsObject.CreateStaticObject(50, 60);
151        Hamppari.IgnoresCollisionResponse = true;
152        Hamppari.Position = paikka;
153        Hamppari.Image = HamppariKuva;
154        Hamppari.Tag = "Hamppari";
155
156        Add(Hamppari);
157    }
158
159    void LisaaMaali(Vector paikka, double leveys, double korkeus)
160    {
161        maaliAani.Play();
162        PhysicsObject Maali = PhysicsObject.CreateStaticObject(150.0, 100.0);
163        Maali.IgnoresCollisionResponse = true;
164        Maali.Position = paikka;
165        Maali.Color = Color.Aqua;
166        //Maali.Image = Maalikuva;
167        Maali.Tag = "Maali";
168
169       
170        Add(Maali);
171
172    }
173    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
174    {
175        pelaaja1 = new PlatformCharacter(50, 100);
176        pelaaja1.Position = paikka;
177        pelaaja1.Mass = 4.0;
178        pelaaja1.Image = pelaajanKuva;
179        Add(pelaaja1);
180
181        AddCollisionHandler(pelaaja1, "Maali", TormaaMaaliin);
182        AddCollisionHandler(pelaaja1, "Piikki", TormaaPiikkiin);
183        AddCollisionHandler(pelaaja1, "Cola", TormaaColaan);
184        AddCollisionHandler(pelaaja1, "Ranskalaiset", TormaaRanskalasiin);
185        AddCollisionHandler(pelaaja1, "Hamppari", TormaaHamppariin);
186    }
187   
188     
189    void LisaaNappaimet()
190    {
191        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
192        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
193
194        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
195        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus); 
196        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
197       
198        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
199
200        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
201        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
202        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
203
204        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
205    }
206
207    void Liikuta(PlatformCharacter pelaaja1, double nopeus)
208    {
209        pelaaja1.Walk(nopeus);
210    }
211
212    void Hyppaa(PlatformCharacter pelaaja1, double nopeus)
213    {
214        pelaaja1.Jump(nopeus);
215    }
216   
217    void TormaaPiikkiin(PhysicsObject pelaaja, PhysicsObject Piikki)
218    {
219        Explosion rajahdys = new Explosion(50);
220        rajahdys.Position = pelaaja1.Position;
221        Add(rajahdys); 
222        rajahdys.Speed = 100.0;
223        rajahdys.Force = 10000;
224        pelaaja1.Destroy();
225
226        Timer ajastin = new Timer();
227        ajastin.Interval = 3;
228        ajastin.Timeout += AloitaAlusta;
229        ajastin.Start(1);
230
231        nauru.Play();
232    }
233    void TormaaMaaliin(PhysicsObject pelaaja, PhysicsObject maali)
234    {
235
236        KenttaNro++;
237        SeuraavaKentta();
238       
239        MessageDisplay.Add("Läpäisit kentän");
240 
241        /*
242        ClearAll();
243
244        KenttaNro++;
245
246        if (KenttaNro == 1) LuoKentta("kentta1");
247        else if (KenttaNro == 2) LuoKentta("kentta2");
248        else if (KenttaNro == 3) LuoKentta("kentta3");
249        else if (KenttaNro > 3) Exit();
250       
251       
252        Gravity = new Vector(0, -1100);
253
254        LisaaNappaimet();
255         */
256
257    }
258    void TormaaColaan(PhysicsObject pelaaja1, PhysicsObject Cola)
259    {
260        maaliAani.Play();
261        MessageDisplay.Add("Keräsit Colan!");
262        Cola.Destroy();
263        pisteLaskuri.Value += 100;
264    }
265    void TormaaRanskalasiin(PhysicsObject pelaaja1, PhysicsObject Ranskalaiset)
266    {
267        maaliAani.Play();
268        MessageDisplay.Add("Keräsit Ranskalaiset!");
269        Ranskalaiset.Destroy();
270        pisteLaskuri.Value += 20;
271    }
272    void TormaaHamppariin(PhysicsObject pelaaja1, PhysicsObject Hamppari)
273    {
274        maaliAani.Play();
275        MessageDisplay.Add("Keräsit Hampurilaisen");
276        Hamppari.Destroy();
277        pisteLaskuri.Value += 50;
278    }
279   
280    void LisaaPiikki(Vector paikka, double korkeus, double leveys)
281    {
282        PhysicsObject Piikki = PhysicsObject.CreateStaticObject(40.0, 20.0);
283        Piikki.Color = Color.White;
284        Piikki.Shape = Shape.Triangle;
285        Piikki.Tag = "Piikki";
286        Piikki.Position = paikka;
287        Add(Piikki);
288    }
289    void PelaajaTormasi(PhysicsObject pelaaja1, PhysicsObject Piikki, PhysicsObject kohde) 
290    {
291       
292        Explosion rajahdys = new Explosion(50);
293        rajahdys.Position = pelaaja1.Position;
294        Add(rajahdys);
295        rajahdys.Speed = 100.0;
296        rajahdys.Force = 10000;
297        pelaaja1.Destroy();
298        SoundEffect nauru = LoadSoundEffect("nauru");
299        nauru.Play();
300
301
302       
303     
304        {
305            AloitaAlusta();
306           
307        }
308       
309        Timer ajastin = new Timer();
310        ajastin.Interval = 3;
311        ajastin.Timeout += AloitaAlusta;
312        ajastin.Start(1);
313    }
314   
315   
316   
317
318    IntMeter pisteLaskuri;
319
320    void LuoPisteLaskuri()
321    {
322        pisteLaskuri = new IntMeter(0);
323
324        Label pisteNaytto = new Label();
325        pisteNaytto.X = Screen.Left + 100;
326        pisteNaytto.Y = Screen.Top - 100;
327        pisteNaytto.TextColor = Color.Green;
328        pisteNaytto.Color = Color.Aqua;
329        pisteNaytto.Title = "pisteet";
330        pisteNaytto.IntFormatString = "pisteitä: {0:D1}";
331        pisteLaskuri.Reset();
332       
333       
334
335
336        pisteNaytto.BindTo(pisteLaskuri);
337        Add(pisteNaytto);
338
339    }
340 
341    void AloitaAlusta()
342    {
343        ClearAll();
344
345        //Gravity = new Vector(0, -1500);
346
347        //LuoKentta();
348        SeuraavaKentta();
349       
350    }
351
352    void SeuraavaKentta()
353    {
354        ClearAll();
355
356        if (KenttaNro == 1) LuoKentta("kentta1");
357        else if (KenttaNro == 2) LuoKentta("kentta2");
358        else if (KenttaNro == 3) LuoKentta("kentta3");
359        else if (KenttaNro == 4) LuoKentta("kentta4");
360        else if (KenttaNro > 4) Exit();
361
362     
363
364        Gravity = new Vector(0, -1200);
365
366        LisaaNappaimet();
367        LuoPisteLaskuri();
368
369        Camera.Follow(pelaaja1);
370        Camera.ZoomFactor = 1.2;
371        Camera.StayInLevel = true;
372
373
374    }
375
376}
377
378
379
380   
381
382
383 
384
385
386
387
388   
389
390
391
392
393
Note: See TracBrowser for help on using the repository browser.