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

Revision 4128, 10.7 KB checked in by sasyvane, 6 years ago (diff)

Talletus.

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