source: 2011/31/AleksiN/workingtitle/workingtitle/Peli.cs @ 2559

Revision 2559, 10.8 KB checked in by alnirham, 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 Peli : PhysicsGame
10{
11    Vector hyppynopeus = new Vector(0, 550);
12    Vector nopeus = new Vector(800, 0);
13    Vector boost = new Vector(1500, 0);
14   
15    PhysicsObject ukko;
16
17    PhysicsObject palikka;
18    PhysicsObject punpalikka;
19
20    int kenttanro = 1;
21
22    Image peruna = LoadImage("peruna");
23    Image portal1 = LoadImage("portal1");
24
25    public override void Begin()
26    {
27        Gravity = new Vector(0.0, -1000.0);
28
29        hahmot();
30        kontrollit();
31
32        Camera.Follow(ukko);
33
34        if (kenttanro == 1)
35        {
36            kentta1();
37        }
38        if (kenttanro == 2)
39        {
40            kentta2();
41        }
42
43    }
44
45    void hahmot()
46    {
47        ukko = new PhysicsObject(35,50);
48        ukko.Shape = Shape.Circle;
49        ukko.Color = Color.LimeGreen;
50        ukko.Image = LoadImage ("peruna");
51        ukko.KineticFriction = 0.7;
52        ukko.Restitution = 0.15;
53        ukko.X = -875.0;
54        ukko.Y = 275.0;
55        AddCollisionHandler(ukko, boostcollisionhandler);
56        AddCollisionHandler(ukko, kuolema);
57        AddCollisionHandler(ukko, seuraavakentta);
58       
59        Add(ukko);
60    }
61
62    void kentta1()
63    {
64        kentta1reunat();
65        kentta1palikat();
66
67        Level.BackgroundColor = new Color(30, 30, 80);
68    }
69
70    void kentta2()
71    {
72        ukko.Width = 42;
73        ukko.Height = 42;
74
75        kentta2reunat();
76        kentta2palikat();
77
78        ukko.X = -1260;
79        ukko.Y = 250;
80
81        Level.BackgroundColor = new Color(95,70,0);
82    }
83
84    void kentta2reunat()
85    {
86        PhysicsObject alareuna = PhysicsObject.CreateStaticObject(8000, 500);
87        alareuna.Y = -575;
88        alareuna.IgnoresGravity = true;
89        alareuna.Color = new Color(255, 190, 0);
90        Add(alareuna);
91
92        PhysicsObject ylareuna = PhysicsObject.CreateStaticObject(8000, 500);
93        ylareuna.Y = 575;
94        ylareuna.IgnoresGravity = true;
95        ylareuna.Color = new Color(255, 190, 0);
96        Add(ylareuna);
97
98        PhysicsObject vasenreuna = PhysicsObject.CreateStaticObject(750, 1750);
99        vasenreuna.X = -1775;
100        vasenreuna.IgnoresGravity = true;
101        vasenreuna.Color = new Color(255, 190, 0);
102        Add(vasenreuna);
103
104        PhysicsObject oikeareuna = PhysicsObject.CreateStaticObject(750, 1750);
105        oikeareuna.X = 4000;
106        oikeareuna.IgnoresGravity = true;
107        oikeareuna.Color = new Color(255, 190, 0);
108        Add(oikeareuna);
109    }
110
111    void kentta2palikat()
112    {
113        palikka = palikat2(-1260, 195, 125, 30, Angle.FromDegrees(0));
114        palikka = palikat2(-1200, 280, 30, 200, Angle.FromDegrees(0));
115        palikka = palikat2(-1350, -10, 250, 30, Angle.FromDegrees(-50));
116        palikka = palikat2(-1180, -170, 250, 30, Angle.FromDegrees(-35));
117        palikka = palikat2(-970, -280, 250, 30, Angle.FromDegrees(-20));
118        palikka = palikat2(-450, -310, 250, 30, Angle.FromDegrees(15));
119        palikka = palikat2(-220, -228, 250, 30, Angle.FromDegrees(25));
120
121        PhysicsObject boost = new PhysicsObject(10, 10);
122        Add(boost);
123    }
124
125    void kentta1reunat()
126    {
127
128        PhysicsObject alareuna = PhysicsObject.CreateStaticObject(3000, 500);
129        alareuna.Y = -575;
130        alareuna.IgnoresGravity = true;
131        alareuna.Color = new Color(0, 215, 215);
132        Add(alareuna);
133
134        PhysicsObject ylareuna = PhysicsObject.CreateStaticObject(3000, 500);
135        ylareuna.Y = 575;
136        ylareuna.IgnoresGravity = true;
137        ylareuna.Color = new Color(0, 215, 215);
138        Add(ylareuna);
139
140        PhysicsObject vasenreuna = PhysicsObject.CreateStaticObject(750, 1750);
141        vasenreuna.X = -1775;
142        vasenreuna.IgnoresGravity = true;
143        vasenreuna.Color = new Color(0, 215, 215);
144        Add(vasenreuna);
145
146        PhysicsObject oikeareuna = PhysicsObject.CreateStaticObject(750, 1750);
147        oikeareuna.X = 1775;
148        oikeareuna.IgnoresGravity = true;
149        oikeareuna.Color = new Color(0, 215, 215);
150        Add(oikeareuna);
151    }
152
153    void kentta1palikat()
154    {
155        palikka = palikat(-805.0, 300.0, 50, 1050, Angle.FromDegrees (0));
156        palikka = palikat(-775.0, -210.0, 80, 30, Angle.FromDegrees(0));
157        palikka = palikat(-775.0, -90.0, 60, 30, Angle.FromDegrees(0));
158        palikka = palikat(-775.0, 30.0, 40, 30, Angle.FromDegrees(0));
159        palikka = palikat(-380.0, 150.0, 60, 750, Angle.FromDegrees(0));
160        palikka = palikat(-240.0, -190.0, 28, 20, Angle.FromDegrees(0));
161        palikka = palikat(-140.0, -60.0, 28, 20, Angle.FromDegrees(0));
162        palikka = palikat(-40.0, 70.0, 28, 20, Angle.FromDegrees(0));
163        palikka = palikat(-276.0, 170.0, 250, 30, Angle.FromDegrees(0));
164        palikka = palikat(200.0, 260.0, 600, 20, Angle.FromDegrees(0));
165        palikka = palikat(70, -33, 30, 605, Angle.FromDegrees(0));
166        palikka = palikat(-1050, 220, 450, 30, Angle.FromDegrees(0));
167        palikka = palikat(-655.0, -298.0, 15, 55, Angle.FromDegrees(0));
168        palikka = palikat(600.0, 50, 60, 600, Angle.FromDegrees(0));
169        palikka = palikat(565.0, 60.0, 40, 20, Angle.FromDegrees(0));
170        palikka = palikat(280.0, 155.0, 220, 20, Angle.FromDegrees(0));
171        palikka = palikat(380, 93, 20, 123, Angle.FromDegrees(0));
172        palikka = palikat(160, -100, 250, 30, Angle.FromDegrees(-45));
173        palikka = palikat(505, -180, 200, 30, Angle.FromDegrees(40));
174        palikka = palikat(-1330, 0, 230, 30, Angle.FromDegrees(-45));
175        palikka = palikat(-1000, -250, 30, 420, Angle.FromDegrees(0));
176        palikka = palikat(1295, -50, 60, 585, Angle.FromDegrees(0));
177        palikka = palikat(730, -210, 35, 30, Angle.FromDegrees(0));
178        palikka = palikat(880, -210, 35, 30, Angle.FromDegrees(0));
179        palikka = palikat(1030, -210, 35, 30, Angle.FromDegrees(0));
180        palikka = palikat(1180, -210, 35, 30, Angle.FromDegrees(0));
181        palikka = palikat(1250, -135, 35, 30, Angle.FromDegrees(0));
182        palikka = palikat(1105, -30, 35, 30, Angle.FromDegrees(0));
183        palikka = palikat(955, -30, 35, 30, Angle.FromDegrees(0));
184        palikka = palikat(805, -30, 35, 30, Angle.FromDegrees(0));
185        palikka = palikat(640, 55, 35, 30, Angle.FromDegrees(0));
186        palikka = palikat(730, 140, 35, 30, Angle.FromDegrees(0));
187        palikka = palikat(880, 140, 35, 30, Angle.FromDegrees(0));
188        palikka = palikat(1030, 140, 35, 30, Angle.FromDegrees(0));
189        palikka = palikat(1180, 140, 35, 30, Angle.FromDegrees(0));
190        punpalikka = punpalikat(-625.0, -80.0, 60, 492, Angle.FromDegrees(0));
191        punpalikka = punpalikat(-600.0, -150.0, 100, 50, Angle.FromDegrees(0));
192        punpalikka = punpalikat(-435.0, -150.0, 50, 50, Angle.FromDegrees(0));
193        punpalikka = punpalikat(-98.0, -315.0, 305, 20, Angle.FromDegrees(0));
194        punpalikka = punpalikat(-285.0, 255.0, 130, 139, Angle.FromDegrees(0));
195        punpalikka = punpalikat(480, 40, 180, 20, Angle.FromDegrees(0));
196        punpalikka = punpalikat(326, -139, 155, 30, Angle.FromDegrees(40));
197        punpalikka = punpalikat(-1140, -312, 250, 30, Angle.FromDegrees(0));
198        punpalikka = punpalikat(274, -253, 30, 144, Angle.FromDegrees(0));
199        punpalikka = punpalikat(984, -315, 562, 20, Angle.FromDegrees(0));
200
201        PhysicsObject maali = PhysicsObject.CreateStaticObject(30, 50);
202        maali.Shape = Shape.Circle;
203        maali.X = 1363;
204        maali.Y = -300;
205        maali.Angle = Angle.FromDegrees(-15);
206        maali.Tag = "maali";
207        maali.Image = LoadImage("portal1");
208        Add(maali);
209
210        PhysicsObject test = PhysicsObject.CreateStaticObject(30, 50);
211        test.Shape = Shape.Circle;
212        test.X = -950;
213        test.Y = 275;
214        test.Angle = Angle.FromDegrees(-15);
215        test.Tag = "maali";
216        test.Image = LoadImage("portal1");
217        Add(test);
218    }
219
220    PhysicsObject palikat(double x, double y, double width, double height, Angle kulma)
221    {
222        PhysicsObject palikka = PhysicsObject.CreateStaticObject(100.0, 100.0);
223        palikka.Color = new Color(0,215,215);
224        palikka.X = x;
225        palikka.Y = y;
226        palikka.Width = width;
227        palikka.Height = height;
228        palikka.Angle = kulma;
229        Add(palikka);
230
231        return palikka;
232    }
233
234        PhysicsObject palikat2(double x, double y, double width, double height, Angle kulma)
235    {
236        PhysicsObject palikka = PhysicsObject.CreateStaticObject(100.0,100.0);
237        palikka.Color = new Color(255,190,0);
238        palikka.X = x;
239        palikka.Y = y;
240        palikka.Width = width;
241        palikka.Height = height;
242        palikka.Angle = kulma;
243        Add(palikka);
244
245        return palikka;
246    }
247    PhysicsObject punpalikat(double x, double y, double width, double height, Angle kulma)
248    {
249        PhysicsObject punpalikka = PhysicsObject.CreateStaticObject(100.0,100.0);
250        punpalikka.Color = new Color(128, 0, 0);
251        punpalikka.X = x;
252        punpalikka.Y = y;
253        punpalikka.Width = width;
254        punpalikka.Height = height;
255        punpalikka.Angle = kulma;
256        punpalikka.Tag = "punpalikka";
257        Add(punpalikka);
258
259        return punpalikka;
260    }
261
262    void kuolema(PhysicsObject pallo, PhysicsObject kohde)
263    {
264        if (kohde.Tag.ToString() == "punpalikka")
265        {
266            ukko.X = -875;
267            ukko.Y = 295;
268        }
269    }
270
271    void seuraavakentta(PhysicsObject ukko, PhysicsObject kohde)
272    {
273        if (kohde.Tag.ToString() == "maali")
274        {
275            kenttanro++;
276            ClearAll();
277            Begin();
278        }
279    }
280
281    void boostcollisionhandler(PhysicsObject ukko, PhysicsObject kohde)
282    {
283        if (kohde.Tag.ToString() == "boost")
284        {
285            boosttapahtuma;
286        }
287    }
288
289    void kontrollit()
290    {
291        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
292        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
293
294        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", ukko, -nopeus);
295        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu vasemmalle", ukko, nopeus);
296        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", ukko, hyppynopeus);
297    }
298   
299    void liikuta(PhysicsObject ukko, Vector nopeus)
300    {
301        ukko.Push(nopeus);
302    }
303
304    void hyppaa(PhysicsObject ukko, Vector hyppynopeus)
305    {
306
307        //if (ukko.Velocity.Y == 0)
308        //{
309            ukko.Hit(hyppynopeus);
310        //}
311    }
312
313    void boosttapahtuma(PhysicsObject ukko, Vector boost)
314    {
315        ukko.Push(boost);
316    }
317}
Note: See TracBrowser for help on using the repository browser.