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

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