source: 2012/26/JereL/Sekasorto/Sekasorto/Sekasorto/Sekasorto.cs @ 3362

Revision 3362, 11.1 KB checked in by jekrlaak, 10 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 Sekasorto : PhysicsGame
10{
11    PhysicsObject Kolmio;
12    PhysicsObject Kolmio2;
13   
14   
15
16
17    public override void Begin()
18    {
19        ClearAll();
20        LuoKentta();
21        Tormays();
22        TekoAly();
23        LuoAikaLaskuri();
24        asetaOhjaimet();
25        TaustaMusiikki();
26       
27       
28       
29       
30       
31       
32       
33       
34       
35        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
36        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
37    }
38
39
40
41        void TaustaMusiikki()
42        {
43            MediaPlayer.Play("Taustamusa Terran");
44        }
45   
46   
47        void LuoKentta()
48        {
49            Kolmio = new PhysicsObject(20, 80);
50            Kolmio.Shape = Shape.Triangle;
51            Kolmio.Color = Color.LightBlue;
52            Kolmio.X = 300;
53            Kolmio.Y = 300;
54            Kolmio.IgnoresGravity = true;
55            Add(Kolmio);
56
57            Kolmio2 = new PhysicsObject(20, 80);
58            Kolmio2.Shape = Shape.Triangle;
59            Kolmio2.Color = Color.LightGreen;
60            Kolmio2.X = -300;
61            Kolmio2.Y = -300;
62            Kolmio2.IgnoresGravity = true;
63            Add(Kolmio2);
64
65           
66
67
68            Level.BackgroundColor = Color.Black;
69            Level.CreateBorders();
70            Camera.ZoomToLevel();
71           
72
73            Timer ajastin = new Timer();
74            ajastin.Interval = 1.5;
75            ajastin.Timeout += PainovoimanVaihto;
76            ajastin.Start();
77
78            Gravity = new Vector(0, 200);
79
80           
81           
82            for (int i = 0; i <= 500; i++)
83            {
84                LuoPikkuMolli();
85            }       
86        }
87
88        void LuoPikkuMolli()
89        {
90            PhysicsObject Molli = new PhysicsObject(RandomGen.NextDouble (5,20),RandomGen.NextDouble(5, 20));
91            Molli.Shape = Shape.Circle;
92            Molli.Color = Color.Yellow;
93
94            Molli.X = RandomGen.NextDouble(Level.Left +10, Level.Right -10);
95            Molli.Y = RandomGen.NextDouble(Level.Bottom +10, Level.Top -10);
96            Add(Molli);
97
98        }
99
100
101
102
103        void PainovoimanVaihto()
104        {
105            Gravity = new Vector(Gravity.Y * -1, Gravity.X);
106        }
107
108        void asetaOhjaimet()
109        {
110            Keyboard.Listen(Key.W, ButtonState.Down, Liikuta, "Pelaaja liikkuu eteenpäin", Kolmio, 400.0);
111            Keyboard.Listen(Key.Up, ButtonState.Down, Liikuta, "pelaaja liikkuu eteenpäin", Kolmio2, 400.0);
112            Keyboard.Listen(Key.Right, ButtonState.Down, pyorita, "pelaaja pyörii oikealle", Kolmio2, -2.5);
113            Keyboard.Listen(Key.D, ButtonState.Down, pyorita, "Pelaaja pyörii oikealle", Kolmio, -2.5);
114            Keyboard.Listen(Key.A, ButtonState.Down, pyorita, "pelaaja pyörii vasemmalle", Kolmio, 2.5);
115            Keyboard.Listen(Key.Left, ButtonState.Down, pyorita, "pelaaja pyörii vasemmalle", Kolmio2, 2.5);
116           
117        }
118
119        void pyorita(PhysicsObject kolmio, double nopeus)
120        {
121            kolmio.AngularVelocity = nopeus;
122
123        }
124       
125        void Liikuta(PhysicsObject kolmio, double nopeus)
126        {
127            Angle kulma = Angle.FromDegrees(-kolmio.Angle.Degrees);
128            Vector suunta = new Vector(kulma.Sin, kulma.Cos);
129            kolmio.Push(suunta * nopeus);
130        }
131
132
133        //void PyoritaOikealle(PhysicsObject Kolmio, double nopeus)
134        //{
135        //    Kolmio.AngularVelocity = -2.0;
136
137        //}
138
139
140        //void PyoritaVasemmalle(PhysicsObject Kolmio, double nopeus)
141        //{
142        //    Kolmio.AngularVelocity = 2.0;
143        //}
144
145
146
147        void Tormays()
148        {
149            AddCollisionHandler(Kolmio, Kolmio2, PelaajatTormaavat);
150        }
151
152
153        void PelaajatTormaavat(IPhysicsObject tormaaja, IPhysicsObject kohde)
154        {
155            Tekstikentta();
156            Rajahdys();
157        }
158
159        void Rajahdys()
160        {
161            Explosion rajahdys = new Explosion(500);
162            rajahdys.Position = Kolmio2.Position;
163            rajahdys.Speed = 1000;
164            rajahdys.Force = 10;
165            Add(rajahdys);
166            ajastin4();
167        }
168
169        void Tekstikentta()
170        {
171
172            Label Tekstikentta = new Label(1000.0, 500.0, "UUUDESTAAN!!");
173            Tekstikentta.TextColor = Color.Turquoise;
174            Add(Tekstikentta);
175        }
176
177        void tekstikentta2()
178        {
179
180            Label Tekstikentta2 = new Label(1000.0, 500.0, "Voitit.. Kokeilehan Uuestaan Niin Et Voita :DD");
181            Tekstikentta2.TextColor = Color.Turquoise;
182            Add(Tekstikentta2);
183        }
184       
185
186
187
188        void Ajastin2()
189        {
190            Timer ajastin2 = new Timer();
191            ajastin2.Interval = 4;
192            ajastin2.Timeout += ToinenKentta;
193            MediaPlayer.Play("Yeah");
194            ajastin2.Start(1);
195           
196        }
197
198        void ajastin4()
199        {
200            Timer ajastin4 = new Timer();
201            ajastin4.Interval = 4;
202            ajastin4.Timeout += Begin;
203            ajastin4.Start(1);
204        }
205
206
207
208
209
210        void TekoAly()
211        {
212            FollowerBrain seuraajanAivot = new FollowerBrain(Kolmio2);
213            Kolmio.Brain = seuraajanAivot;
214            seuraajanAivot.Speed = 200;
215            seuraajanAivot.DistanceFar = 1000;
216            seuraajanAivot.DistanceClose = 0;
217            seuraajanAivot.StopWhenTargetClose = true;
218        }
219       
220
221        void LuoAikaLaskuri()
222        {
223            Timer aikaLaskuri = new Timer();
224            aikaLaskuri.Interval = 1;
225            aikaLaskuri.Timeout += AikaLoppui;
226            aikaLaskuri.Start(1);
227
228            Label aikaNaytto = new Label();
229            aikaNaytto.TextColor = Color.White;
230            aikaNaytto.DecimalPlaces = 1;
231            aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
232            aikaNaytto.X = 600;
233            aikaNaytto.Y = 500;
234            aikaNaytto.Color = Color.Green;
235            Add(aikaNaytto);
236        }
237
238
239        void AikaLoppui()
240        {
241            tekstikentta2();
242            Ajastin2();
243        }
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295        void ToinenKentta()
296        {
297            ClearAll();
298            //Kolmio.
299            LuoKentta2();
300            LuoAikaLaskuri2();
301            Tormays2();
302            asetaOhjaimet2();
303            TekoAly2();
304            TaustaMusiikki2();
305        }
306   
307   
308     void LuoKentta2()
309        {
310            Kolmio = new PhysicsObject(60, 60);
311            Kolmio.Shape = Shape.Circle;
312            Kolmio.Color = Color.LightBlue;
313            Kolmio.Image = LoadImage("Trolface");
314            Kolmio.X = 300;
315            Kolmio.Y = 300;
316            Kolmio.IgnoresGravity = true;
317            Add(Kolmio);
318
319            Kolmio2 = new PhysicsObject(20, 80);
320            Kolmio2.Shape = Shape.Triangle;
321            Kolmio2.Color = Color.LightGreen;
322            Kolmio2.X = -300;
323            Kolmio2.Y = -300;
324            Kolmio2.IgnoresGravity = false;
325            Add(Kolmio2);
326
327            Level.BackgroundColor = Color.Black;
328            Level.CreateBorders();
329            Camera.ZoomToLevel();
330
331            Timer ajastin = new Timer();
332            ajastin.Interval = 1.5;
333            ajastin.Timeout += PainovoimanVaihto;
334            ajastin.Start();
335
336            Gravity = new Vector(0, 200);
337        }
338
339        void TaustaMusiikki2()
340        {
341            MediaPlayer.Play("Trololo");
342        }
343
344        void TekoAly2()
345        {
346            FollowerBrain seuraajanAivot = new FollowerBrain(Kolmio2);
347            Kolmio.Brain = seuraajanAivot;
348            seuraajanAivot.Speed = 4000;
349            seuraajanAivot.DistanceFar = 10000;
350            seuraajanAivot.DistanceClose = 50;
351            seuraajanAivot.StopWhenTargetClose = false;
352        }
353   
354    void LuoAikaLaskuri2()
355        {
356            Timer aikaLaskuri2 = new Timer();
357            aikaLaskuri2.Interval = 120;
358            aikaLaskuri2.Timeout += AikaLoppui;
359            aikaLaskuri2.Start(1);
360
361            Label aikaNaytto = new Label();
362            aikaNaytto.TextColor = Color.White;
363            aikaNaytto.DecimalPlaces = 1;
364            aikaNaytto.BindTo(aikaLaskuri2.SecondCounter);
365            aikaNaytto.X = 600;
366            aikaNaytto.Y = 500;
367            aikaNaytto.Color = Color.Green;
368            Add(aikaNaytto);
369        }
370
371        void ajastin3()
372        {
373            Timer ajastin3 = new Timer();
374            ajastin3.Interval = 4;
375            ajastin3.Timeout += Begin;
376            ajastin3.Start(1);
377        }
378
379        void asetaOhjaimet2()
380        {
381            Keyboard.Listen(Key.W, ButtonState.Down, Liikuta, "Pelaaja liikkuu eteenpäin", Kolmio, 100000.0);
382            Keyboard.Listen(Key.Up, ButtonState.Down, Liikuta, "pelaaja liikkuu eteenpäin", Kolmio2, 70.0);
383            Keyboard.Listen(Key.Right, ButtonState.Down, pyorita, "pelaaja pyörii oikealle", Kolmio2, -1.5);
384            Keyboard.Listen(Key.D, ButtonState.Down, pyorita, "Pelaaja pyörii oikealle", Kolmio, -30.0);
385            Keyboard.Listen(Key.A, ButtonState.Down, pyorita, "pelaaja pyörii vasemmalle", Kolmio, 30.0);
386            Keyboard.Listen(Key.Left, ButtonState.Down, pyorita, "pelaaja pyörii vasemmalle", Kolmio2, 1.5);
387
388        }
389
390        //void pyorita2(PhysicsObject kolmio, double nopeus)
391        //{
392        //    kolmio.ApplyTorque(nopeus);
393
394        //}
395
396        //void Liikuta2(PhysicsObject kolmio, double nopeus)
397        //{
398        //    Angle kulma = Angle.FromDegrees(-kolmio.Angle.Degrees);
399        //    Vector suunta = new Vector(kulma.Sin, kulma.Cos);
400        //    kolmio.Push(suunta * nopeus);
401        //}
402
403
404        //void PyoritaOikealle2(PhysicsObject Kolmio, double nopeus)
405        //{
406        //    Kolmio.AngularVelocity = -2.0;
407
408        //}
409
410
411        //void PyoritaVasemmalle2(PhysicsObject Kolmio, double nopeus)
412        //{
413        //    Kolmio.AngularVelocity = 2.0;
414        //}
415
416        void Rajahdys2()
417        {
418            Explosion rajahdys = new Explosion(500);
419            rajahdys.Position = Kolmio2.Position;
420            rajahdys.Speed = 800;
421            rajahdys.Force = 100;
422            rajahdys.Image = LoadImage("ffffuuuu");
423            Add(rajahdys);
424            ajastin3();
425        }
426
427        void Tekstikentta3()
428        {
429
430            Label Tekstikentta3 = new Label(1000.0, 500.0, "HÄVISIT!! Miltä Nyt Tuntuu?? :D Ja Nyt Vaan Alusta :DD");
431            Tekstikentta3.TextColor = Color.Turquoise;
432            Add(Tekstikentta3);
433        }
434
435        void Tormays2()
436        {
437            AddCollisionHandler(Kolmio, Kolmio2, PelaajatTormaavat2);
438        }
439
440        void PelaajatTormaavat2(IPhysicsObject tormaaja, IPhysicsObject kohde)
441        {
442            Tekstikentta3();
443            Rajahdys2();
444        }
445
446}
Note: See TracBrowser for help on using the repository browser.