source: 2012/30/MarkusV/Mud Man VS The Morgmar/Mud Man VS The Morgmar/Mud Man VS The Morgmar/Mud_Man_VS_The_Morgmar.cs @ 3784

Revision 3784, 10.5 KB checked in by anlakane, 8 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 Mud_Man_VS_The_Morgmar : PhysicsGame
10{
11    Image taustakuva = LoadImage("T");
12    Image taustakuva1 = LoadImage("Forest");
13    Image taustakuva2 = LoadImage("Random");
14    Image taustakuva3 = LoadImage("Jungle");
15    Image taustakuva4 = LoadImage("water");
16    Image taustakuva5 = LoadImage("Mars");
17
18    PlatformCharacter Monst;
19    Image olionkuva = LoadImage("Untitled");
20    Image olionkuva2 = LoadImage("lol");
21    Image Pokaali0 = LoadImage("pokaali");
22    PhysicsObject pelaaja1;
23    DoubleMeter elamalaskuri;
24    Cannon Monst3;
25    DoubleMeter elamalaskuri2;
26    PhysicsObject Pokaali;
27    Timer aikaLaskuri;
28    ScoreList toplista = new ScoreList(10, true, 9999);
29
30    public override void Begin()
31    {
32        toplista = DataStorage.TryLoad<ScoreList>(toplista, "pisteet.xml");
33        Naytavalikko();
34    }
35    void Naytavalikko()
36    {
37        ClearAll();
38        MultiSelectWindow alkuValikko = new MultiSelectWindow("Tervetuloa Peliin", "AloitaPeli", "Toplista", "Lopeta");
39        alkuValikko.DefaultCancel = 3;
40        Add(alkuValikko);
41        alkuValikko.ItemSelected += painettiinvalikonnappia;
42    }
43    void AloitaPeli()
44    {
45
46
47        ClearAll();
48
49        pelaaja1 = new PhysicsObject(70, 70);
50        pelaaja1.CanRotate = true;
51        pelaaja1.X = +300;
52        luoelamanlaskuri();
53        LuoAikaLaskuri();
54
55        Add(pelaaja1);
56        Pokaali = new PhysicsObject(400, 400);
57
58        pelaaja1.Image = olionkuva;
59        Monst = new PlatformCharacter(140, 140);
60        Monst.Image = olionkuva2;
61        Monst.X = -300;
62        Add(Monst);
63        Monst3 = new Cannon(55, 35);
64        Monst3.Ammo.Value = 1000;
65        Monst3.ProjectileCollision = AmmusOsui;
66        Monst3.Power.Value = 5000;
67        Monst3.FireRate = 3.2;
68        Monst3.AmmoIgnoresGravity = true;
69        Monst.Weapon = Monst3;
70        Monst.CanRotate = false;
71        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
72        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
73        Keyboard.Listen(Key.H, ButtonState.Pressed, ShowControlHelp, "ohjeet");
74        Surface alaReuna = Surface.CreateBottom(Level);
75        Add(alaReuna);
76        Level.CreateBorders();
77        Camera.ZoomToLevel();
78        alaReuna.Color = Color.DarkBrown;
79        Level.Background.ScaleToLevelFull();
80        Gravity = new Vector(0.0, -800);
81        AddCollisionHandler(pelaaja1, Monst, Pelaajattormasivat);
82        liikutapelaajaa();
83
84    }
85
86    void luotoplista()
87    {
88
89    }
90
91    void liikutapelaajaa()
92    {
93        Keyboard.Listen(Key.Left, ButtonState.Down,
94         LiikutaPelaajaa, null, new Vector(-1500, 0));
95        Keyboard.Listen(Key.Right, ButtonState.Down,
96          LiikutaPelaajaa, null, new Vector(1500, 0));
97        Keyboard.Listen(Key.Up, ButtonState.Down,
98          LiikutaPelaajaa, null, new Vector(0, 1500));
99        Keyboard.Listen(Key.Down, ButtonState.Down,
100          LiikutaPelaajaa, null, new Vector(0, -700));
101        Keyboard.Listen(Key.Left, ButtonState.Released,
102     LiikutaPelaajaa, null, Vector.Zero);
103        Keyboard.Listen(Key.Right, ButtonState.Released,
104          LiikutaPelaajaa, null, Vector.Zero);
105        Keyboard.Listen(Key.Up, ButtonState.Released,
106          LiikutaPelaajaa, null, Vector.Zero);
107        Keyboard.Listen(Key.Down, ButtonState.Released,
108          LiikutaPelaajaa, null, Vector.Zero);
109
110        Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu", Monst3);
111        Keyboard.Listen(Key.A, ButtonState.Down,
112               Monst9, null, -1000.0);
113        Keyboard.Listen(Key.D, ButtonState.Down,
114          Monst9, null, 1000.0);
115        Keyboard.Listen(Key.W, ButtonState.Down, hyppy, null, 1000.0);
116
117
118        //Keyboard.Listen(Key.S, ButtonState.Down,
119        //  Monst9, null, new Vector(0, -1000));
120
121    }
122    void LiikutaPelaajaa(Vector vectori)
123    {
124        pelaaja1.Push(vectori);
125
126    }
127
128    void Monst9(double x)
129    {
130        Monst.Walk(x);
131    }
132    void hyppy(double E)
133    {
134        Monst.Jump(E);
135    }
136    void LuoAikaLaskuri()
137    {
138        aikaLaskuri = new Timer();
139        aikaLaskuri.Start();
140
141        Label aikaNaytto = new Label();
142        aikaNaytto.TextColor = Color.White;
143        aikaNaytto.DecimalPlaces = 1;
144        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
145        Add(aikaNaytto);
146        double aikaakulunut = aikaLaskuri.SecondCounter.Value;
147        aikaNaytto.Color = Color.Black;
148    }
149
150    void Pelaajattormasivat(PhysicsObject tormaaja, PhysicsObject kohde)
151    {
152        elamalaskuri.Value -= 1;
153        MessageDisplay.Add("Törmäys");
154    }
155
156    void luoelamanlaskuri()
157    {
158
159        elamalaskuri = new DoubleMeter(30);
160        elamalaskuri.MaxValue = 30;
161        elamalaskuri.LowerLimit += ElamaLoppui;
162        elamalaskuri.LowerLimit += delegate
163        {
164            Timer.SingleShot(3.0, PeliPaattyy);
165        };
166
167        ProgressBar elamaPalkki = new ProgressBar(150, 50);
168        elamaPalkki.X = Screen.Left + 280;
169        elamaPalkki.Y = Screen.Top - 50;
170        elamaPalkki.BindTo(elamalaskuri);
171        elamaPalkki.BarColor = Color.Blue;
172        elamaPalkki.BorderColor = Color.Black;
173        elamaPalkki.Color = Color.White;
174        Add(elamaPalkki);
175
176        elamalaskuri2 = new DoubleMeter(30);
177        elamalaskuri2.MaxValue = 30;
178        elamalaskuri2.LowerLimit += ElamaLoppui2;
179        elamalaskuri2.LowerLimit += delegate
180        {
181            Timer.SingleShot(3.0, PeliPaattyy);
182        };
183
184        ProgressBar elamaPalkki2 = new ProgressBar(150, 50);
185        elamaPalkki2.X = Screen.Right - 280;
186        elamaPalkki2.Y = Screen.Top - 50;
187        elamaPalkki2.BindTo(elamalaskuri2);
188        elamaPalkki2.BarColor = Color.Green;
189        elamaPalkki2.BorderColor = Color.Black;
190        elamaPalkki2.Color = Color.White;
191        Add(elamaPalkki2);
192    }
193
194    void PeliPaattyy()
195    {
196        HighScoreWindow topIkkuna = new HighScoreWindow(
197                                     "Parhaat pisteet",
198                                     "Onneksi olkoon, pääsit listalle pisteillä %p! Syötä nimesi:",
199                                     toplista, aikaLaskuri.SecondCounter.Value);
200        topIkkuna.Closed += TallennaPisteet;
201        topIkkuna.Closed += delegate { Timer.SingleShot(1.0, Begin); };
202
203
204        Add(topIkkuna);
205    }
206
207    void TallennaPisteet(Window sender)
208    {
209        DataStorage.Save<ScoreList>(toplista, "pisteet.xml");
210    }
211
212
213    void ElamaLoppui()
214    {
215        Monst.Destroy();
216        Monst3.Destroy();
217        Explosion rajahdys = new Explosion(500);
218        rajahdys.Position = Monst.Position;
219        Add(rajahdys);
220        rajahdys.Color = Color.OrangeRed;
221        Smoke savu = new Smoke();
222        savu.Position = rajahdys.Position;
223        Add(savu);
224        MessageDisplay.Add("Game over1.");
225        Pokaali.Image = Pokaali0;
226        Add(Pokaali);
227        aikaLaskuri.Stop();
228    }
229
230    void painettiinvalikonnappia(int valinta)
231    {
232        switch (valinta)
233        {
234            case 0:
235                MultiSelectWindow Kenttavalikko = new MultiSelectWindow("Valitse kenttä", "Aro", "Viidakko", "Wesimaa", "Metsä", "Hulluus","Outous");
236                //Kenttavalikko.DefaultCancel = 3;//
237                Kenttavalikko.IsModal = false;
238                Add(Kenttavalikko);
239                Kenttavalikko.ItemSelected += TapahtuuValikossa;
240                Keyboard.Listen(Key.Q, ButtonState.Pressed, Naytavalikko, "palaa");
241                break;
242            case 2:
243                Exit();
244                break;
245            case 1:
246                NaytaToplista();
247                break;
248            default:
249                break;
250        }
251    }
252
253    void NaytaToplista()
254    {
255        HighScoreWindow topIkkuna = new HighScoreWindow(
256                              "Parhaat pisteet",
257                              toplista);
258        topIkkuna.Closed += delegate { Begin(); };
259        Add(topIkkuna);
260
261    }
262
263
264    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
265    {
266        MessageDisplay.Add("Osuma");
267        ammus.Destroy();
268        if (kohde == pelaaja1)
269        {
270            elamalaskuri2.Value += -1;
271        }
272    }
273    void AmmuAseella(Cannon ase)
274    {
275        PhysicsObject ammus = ase.Shoot();
276        if (ammus != null)
277        {
278
279        }
280    }
281    void ElamaLoppui2()
282    {
283        pelaaja1.Destroy();
284        Explosion rajahdys = new Explosion(500);
285        rajahdys.Position = pelaaja1.Position;
286        Add(rajahdys);
287        Smoke savu = new Smoke();
288        savu.Position = rajahdys.Position;
289        Add(savu);
290        rajahdys.Color = Color.Turquoise;
291        MessageDisplay.Add("Game over2.");
292        PhysicsObject Pokaali = new PhysicsObject(400, 400);
293        Pokaali.Image = Pokaali0;
294        Add(Pokaali);
295        aikaLaskuri.Stop();
296    }
297
298    void tallennapisteet(Window sender)
299    {
300        DataStorage.Save<ScoreList>(toplista, "pisteet.xml");
301
302    }
303    void TapahtuuValikossa(int valikk0)
304    {
305        switch (valikk0)
306        {
307            case 0:
308                //Aro();
309                AloitaPeli();
310                Level.Background.Image = taustakuva;
311                Level.Background.FitToLevel();
312                break;
313            case 1:
314                //Viidakko();
315                AloitaPeli();
316                Level.Background.Image = taustakuva3;
317                Level.Background.FitToLevel();
318                break;
319            case 2:
320                //Wesimaa();
321                AloitaPeli();
322                Level.Background.Image = taustakuva4;
323                Level.Background.FitToLevel();
324
325                break;
326            case 3:
327                //Metsä();
328                AloitaPeli();
329                Level.Background.Image = taustakuva1;
330                Level.Background.FitToLevel();
331                break;
332            case 4:
333                //Hulluus();
334                AloitaPeli();
335                Level.Background.Image = taustakuva2;
336                Level.Background.FitToLevel();
337                break;
338
339            case 5:
340                //Outous();
341                AloitaPeli();
342                Level.Background.Image = taustakuva5;
343                Level.Background.FitToLevel();
344                break;
345
346
347
348
349        }
350    }
351}
Note: See TracBrowser for help on using the repository browser.