source: 2013/24/EemeliK/KillSlender/KillSlender/KillSlender/KillSlender.cs @ 4130

Revision 4130, 9.3 KB checked in by taeekotr, 7 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 KillSlender : PhysicsGame
10{
11    PhysicsObject pelaaja;
12    Image tyyppi = LoadImage("tyyppi");
13    Image RahaKuva = LoadImage("rahapussi");
14    Image BarrelKuva = LoadImage("barrel");
15    Image StephanoKuva = LoadImage("stephano");
16    IntMeter Rahalaskuri;
17    int kenttaNro = 4;
18
19    Color[] kenttienTaustavarit = { Color.LightBlue, Color.LightBlue, Color.Black, Color.Green, Color.Green };
20
21    public override void Begin()
22    {
23        // TODO:
24        MediaPlayer.Play("taustamusiikki");
25        LuoRahalaskuri();
26        seuraavakentta();
27    }
28
29    void seuraavakentta()
30    {
31        ClearAll();
32
33        if (kenttaNro == 1) LuoKentta("kentta1");
34        else if (kenttaNro == 2) LuoKentta("kentta2");
35        else if (kenttaNro == 3) LuoKentta("kentta3");
36        else if (kenttaNro == 4) LuoKentta("kentta4");
37        else if (kenttaNro == 5) LuoKentta("kentta5");
38        else if (kenttaNro > 5) Exit();
39    }
40
41
42    void LuoPalikka(Vector paikka, double leveys, double korkeus)
43    {
44        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
45        palikka.Position = paikka;
46        palikka.Shape = Shape.Rectangle;
47        palikka.Color = Color.Gray;
48        Add(palikka);
49
50    }
51    void LuoTNT(Vector paikka, double leveys, double korkeus)
52    {
53        PhysicsObject tnt = PhysicsObject.CreateStaticObject(50, 150);
54        tnt.Position = paikka;
55        tnt.Shape = Shape.Rectangle;
56        tnt.Color = Color.Gray;
57        Add(tnt);
58        Image olionKuva = LoadImage("TNT");
59        tnt.Image = olionKuva;
60        AddCollisionHandler(tnt, CollisionHandler.ExplodeBoth(200, true));
61        AddCollisionHandler(tnt, "slender", VaihdaKentta);
62    }
63    void LiikutaPelaajaa(Vector vektori)
64    {
65        pelaaja.Push(vektori);
66    }
67    void LuoPelaaja(Vector paikka, double leveys, double korkeus, Image kuva)
68    {
69        pelaaja.Position = paikka;
70        pelaaja.Image = kuva;
71    }
72    void VaihdaKentta(PhysicsObject tormaaja, PhysicsObject kohde)
73    {
74        kenttaNro++;
75        seuraavakentta();
76        MessageDisplay.Add("Pääsit läpi");
77
78    }
79    void LuoKentta(String Kenttatiedosto)
80    {
81        ClearAll();
82        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
83        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
84        pelaaja = new PhysicsObject(50, 100);
85        pelaaja.Shape = Shape.Rectangle;
86        Add(pelaaja);
87        pelaaja.Destroyed += PelaajaKuoli;
88        pelaaja.Image = tyyppi;
89        Gravity = new Vector(0.0, -800.0);
90        TileMap ruudut = TileMap.FromLevelAsset(Kenttatiedosto);
91        ruudut.SetTileMethod('s', LuoSlender);
92        ruudut.SetTileMethod('1', LuoPelaaja, LoadImage("tyyppi"));
93        ruudut.SetTileMethod('2', LuoPelaaja, LoadImage("tyyppi2"));
94        ruudut.SetTileMethod('=', LuoPalikka);
95        ruudut.SetTileMethod('*', LuoTNT);
96        ruudut.SetTileMethod('E', LuoEyes);
97        ruudut.SetTileMethod('$', LuoRaha);
98        ruudut.SetTileMethod('M', LuoMorso);
99        ruudut.SetTileMethod('B', LuoBarrel);
100        ruudut.SetTileMethod('p', Luopewdiepie);
101        ruudut.SetTileMethod('i', Luoirresponsibledad);
102        ruudut.SetTileMethod('S', LuoStephano);
103        ruudut.Execute(20, 20);
104        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-1000, 0));
105        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, null, new Vector(1000, 0));
106        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 1000));
107        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -1000));
108        Keyboard.Listen(Key.P, ButtonState.Pressed, Pause, "Pysäyttää pelin");
109        IsPaused = true;
110        Camera.Follow(pelaaja);
111        Level.BackgroundColor = kenttienTaustavarit[kenttaNro - 1];
112        AddCollisionHandler(pelaaja, "Raha", PelaajaOsuu);
113        AddCollisionHandler(pelaaja, "Stephano", PelaajaOsuu);
114
115        if (kenttaNro == 4)
116        {
117            Timer ajastin = new Timer();
118            ajastin.Interval = 15;
119            ajastin.Start();
120            ajastin.Timeout += delegate { VaihdaKentta(null, null); }; //HUOM! kaks null arvoa parametreinä
121
122
123        }
124
125    }
126    void LuoSlender(Vector paikka, double leveys, double korkeus)
127    {
128        PhysicsObject slender = new PhysicsObject(50, 150);
129        slender.Shape = Shape.Rectangle;
130        slender.Tag = "slender";
131        Add(slender);
132        FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja);
133        slender.Brain = seuraajanAivot;
134        seuraajanAivot.Speed = 258;
135        Image olionKuva = LoadImage("slender");
136        slender.Image = olionKuva;
137        AddCollisionHandler(pelaaja, slender, CollisionHandler.ExplodeObject(100, true));
138        slender.Position = paikka;
139
140    }
141    void PelaajaKuoli()
142    {
143        //Sama kenttä ladataan alusta jos kenttänumeroa ei kasvateta:
144        seuraavakentta();
145    }
146
147    void vaihdakentta(PhysicsObject tormaaja, PhysicsObject kohde)
148    {
149        kenttaNro++;
150        seuraavakentta();
151        MessageDisplay.Add("Pääsit läpi");
152    }
153
154    void LuoEyes(Vector paikka, double leveys, double korkeus)
155    {
156        PhysicsObject eyes = new PhysicsObject(150, 250);
157        eyes.Shape = Shape.Rectangle;
158        eyes.Tag = "eyes";
159        Add(eyes);
160        FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja);
161        eyes.Brain = seuraajanAivot;
162        seuraajanAivot.Speed = 345;
163        Image olionKuva = LoadImage("eyes");
164        eyes.Image = olionKuva;
165        AddCollisionHandler(pelaaja, eyes, CollisionHandler.ExplodeObject(100, true));
166        eyes.Position = paikka;
167
168    }
169
170
171
172    void LuoRaha(Vector paikka, double leveys, double korkeus)
173    {
174        PhysicsObject Raha = PhysicsObject.CreateStaticObject(100, 100);
175        Raha.IgnoresCollisionResponse = true;
176        Raha.Position = paikka;
177        Raha.Image = RahaKuva;
178        Raha.Tag = "Raha";
179        Add(Raha);
180        Rahalaskuri.Value++;
181    }
182    void PelaajaOsuu(PhysicsObject pelaaja, PhysicsObject Raha)
183    {
184       
185        Raha.Destroy();
186        Rahalaskuri.Value--;
187    }
188    void LuoRahalaskuri()
189    {
190        Rahalaskuri = new IntMeter(0, 0, 14);//Tähtien määrä
191        Rahalaskuri.LowerLimit += new Action(Rahalaskuri_LowerLimit);
192    }
193
194    void Rahalaskuri_LowerLimit()
195    {
196        kenttaNro++;
197        seuraavakentta();
198        MessageDisplay.Add("Pääsit läpi");
199    }
200    void LuoMorso(Vector paikka, double leveys, double korkeus)
201    {
202        PhysicsObject morso = new PhysicsObject(150, 200);
203        morso.Shape = Shape.Rectangle;
204        morso.Tag = "morso";
205        Add(morso);
206        FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja);
207        morso.Brain = seuraajanAivot;
208        seuraajanAivot.Speed = 500;
209        Image olionKuva = LoadImage("morso");
210        morso.Image = olionKuva;
211        AddCollisionHandler(pelaaja, morso, CollisionHandler.ExplodeObject(100, true));
212        morso.Position = paikka;
213
214    }
215    void LuoBarrel(Vector paikka, double leveys, double korkeus)
216    {
217        PhysicsObject Barrel = PhysicsObject.CreateStaticObject(50, 50);
218        Barrel.Position = paikka;
219        Barrel.Shape = Shape.Rectangle;
220        Barrel.Color = Color.Gray;
221        Add(Barrel);
222        Barrel.Image = BarrelKuva;
223       
224    }
225    void Luopewdiepie(Vector paikka, double leveys, double korkeus)
226    {
227        PhysicsObject pewdiepie = new PhysicsObject(150, 200);
228        pewdiepie.Shape = Shape.Rectangle;
229        pewdiepie.Tag = "pewdiepie";
230        Add(pewdiepie);
231        FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja);
232        pewdiepie.Brain = seuraajanAivot;
233        seuraajanAivot.Speed = 500;
234        Image olionKuva = LoadImage("pewdiepie");
235        pewdiepie.Image = olionKuva;
236        AddCollisionHandler(pelaaja, pewdiepie, CollisionHandler.ExplodeObject(100, true));
237        pewdiepie.Position = paikka;
238    }
239    void Luoirresponsibledad(Vector paikka, double leveys, double korkeus)
240    {
241        PhysicsObject irresponsibledad = new PhysicsObject(150, 200);
242        irresponsibledad.Shape = Shape.Rectangle;
243        irresponsibledad.Tag = "irresponsibledad";
244        Add(irresponsibledad);
245        FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja);
246        irresponsibledad.Brain = seuraajanAivot;
247        seuraajanAivot.Speed = 500;
248        Image olionKuva = LoadImage("irresponsibledad");
249        irresponsibledad.Image = olionKuva;
250        AddCollisionHandler(pelaaja, irresponsibledad, CollisionHandler.ExplodeObject(100, true));
251        irresponsibledad.Position = paikka;
252    }
253    void LuoStephano(Vector paikka, double leveys, double korkeus)
254    {
255        PhysicsObject Stephano = PhysicsObject.CreateStaticObject(100, 100);
256        Stephano.IgnoresCollisionResponse = true;
257        Stephano.Position = paikka;
258        Stephano.Image = StephanoKuva;
259        Stephano.Tag = "Stephano";
260        Add(Stephano);
261        Rahalaskuri.Value++;
262    }
263}
264
265
266
267
268
269
270
271
272
273
274
275
Note: See TracBrowser for help on using the repository browser.