source: 2010/23/veeevauh/Tortoise Racing/Peli.cs @ 769

Revision 769, 39.5 KB checked in by veeevauh, 9 years ago (diff)

YEAH! TORTOISERACING valmistui kiireessä

Line 
1using System;
2using Jypeli;
3using Jypeli.ScreenObjects;
4using Jypeli.Assets;
5
6namespace Tortoise_Racing
7{
8    public class Peli : TopDownPhysicsGame
9    {
10        Automobile auto;
11        //viivatKentta01
12        PhysicsObject viiva;
13        PhysicsObject viiva2;
14        //viivatKentta02
15        PhysicsObject viiva3;
16        PhysicsObject viiva4;
17        PhysicsObject viiva5;
18        PhysicsObject viiva6;
19        PhysicsObject viiva7;
20        PhysicsObject viiva8;
21        //viivatKentta03
22        PhysicsObject viiva9;
23        PhysicsObject viiva10;
24        PhysicsObject viiva11;
25        PhysicsObject viiva12;
26        PhysicsObject viiva13;
27        //viivatKentta04
28        PhysicsObject viiva14;
29        PhysicsObject viiva15;
30        PhysicsObject viiva16;
31        PhysicsObject viiva17;
32        PhysicsObject viiva18;
33        PhysicsObject viiva19;
34        //viivatKentta05
35        PhysicsObject viiva20;
36        PhysicsObject viiva21;
37        PhysicsObject viiva22;
38        PhysicsObject viiva23;
39        //viivatKentta06
40        PhysicsObject viiva24;
41        PhysicsObject viiva25;
42        PhysicsObject viiva26;
43        PhysicsObject viiva27;
44        //viivatKentta07
45        PhysicsObject viiva28;
46        PhysicsObject viiva29;
47        //viivatKentta08
48        PhysicsObject viiva30;
49        PhysicsObject viiva31;
50        PhysicsObject viiva32;
51        PhysicsObject viiva33;
52        //viivatKentta09
53        PhysicsObject viiva34;
54        PhysicsObject viiva35;
55        PhysicsObject viiva36;
56        PhysicsObject viiva37;
57        PhysicsObject viiva38;
58        PhysicsObject viiva39;
59        PhysicsObject viiva40;
60        //viivatHidden
61        PhysicsObject viiva41;
62        PhysicsObject viiva42;
63        PhysicsObject viiva43;
64
65        //oikeitaObjekteja
66        PhysicsObject reunaOikea;
67        PhysicsObject reunaAlas;
68        PhysicsObject reunaVasen;
69        PhysicsObject reunaYla;
70        PhysicsObject checkpoint;
71        PhysicsObject valipoint;
72        TimeSpan alkuaika;
73        TimeSpan kierrosAika;
74        double asd = 0;
75        double kentta = 1;
76
77        protected override void Begin()
78        {
79            TeeMenu();
80            LisaaNappaimet();
81
82        }
83
84     
85
86        void TeeMenu()
87        {
88            PhysicsObject menu = PhysicsObject.CreateStaticObject(1200, 1000);
89            menu.IgnoresCollisionResponse = true;
90            menu.IsVisible = true;
91            menu.Image = LoadImage("menu");
92            AddSurface(menu);
93        }
94
95        void LuoAuto()
96        {
97            auto = new Automobile(57.5, 40);
98            auto.Mass = 100.0;
99            auto.Acceleration = 550;
100            auto.KineticFriction = 1;
101            auto.X = 0;
102            auto.Y = 300;
103            auto.Color = new Color(192, 192, 255);
104            auto.Maneuverability = Angle.Radians(Math.PI);
105            auto.IsVisible = true;
106            Add(auto);
107            auto.TopSpeed = 0.03;
108            auto.Image = LoadImage("tortoise1");
109            AddCollisionHandler(auto, TortoiseTormasiViiva);
110
111           
112        }
113
114        void TortoiseTormasiViiva(PhysicsObject auto, PhysicsObject kohde)
115        {
116            // Törmää seinään
117            if ((kohde == viiva) || (kohde == viiva2) || (kohde == viiva3) || (kohde == viiva4) || (kohde == viiva5) || (kohde == viiva6) || (kohde == viiva7) || (kohde == viiva8) || (kohde == viiva9) || (kohde == viiva10) || (kohde == viiva11) || (kohde == viiva12) || (kohde == viiva13) || (kohde == viiva14) || (kohde == viiva15) || (kohde == viiva16) || (kohde == viiva17) || (kohde == viiva18) || (kohde == viiva19) || (kohde == viiva20) || (kohde == viiva21) || (kohde == viiva22) || (kohde == viiva23) || (kohde == viiva24) || (kohde == viiva25) || (kohde == viiva26) || (kohde == viiva27) || (kohde == viiva28) || (kohde == viiva29) || (kohde == viiva30) || (kohde == viiva31) || (kohde == viiva32) || (kohde == viiva33) || (kohde == viiva34) || (kohde == viiva35) || (kohde == viiva36) || (kohde == viiva37) || (kohde == viiva38) || (kohde == viiva39) || (kohde == viiva40) || (kohde == viiva43) || (kohde == viiva42) || (kohde == viiva41) || (kohde == reunaOikea) || (kohde == reunaVasen) || (kohde == reunaAlas) || (kohde == reunaYla))
118            {
119                //Vector temp = auto.Velocity;
120                //auto.Stop();
121                auto.Velocity = -auto.Velocity;
122            }
123
124            if ((kohde == valipoint))
125            {
126                 asd = 1;
127            }
128
129            if((kohde == checkpoint))
130            {
131                if ((asd == 1))
132                {
133                    TimeSpan aikaNyt = Time.SinceStartOfGame;
134                    kierrosAika = aikaNyt - alkuaika;
135                    alkuaika = aikaNyt;
136                    MessageDisplay.TextColor = Color.Red;
137                    MessageDisplay.Add("Kierrosaika: " + kierrosAika.TotalSeconds.ToString("F2"));
138                    asd = 0;
139                }
140            }
141
142        }
143
144
145        void NappaimetAutossa()
146        {
147            Keyboard.Listen(Key.NumPad1, ButtonState.Pressed, LisaaReunatKentta1, "Kentta 1");
148            Keyboard.Listen(Key.NumPad2, ButtonState.Pressed, LisaaReunatKentta2, "Kentta 2");
149            Keyboard.Listen(Key.NumPad3, ButtonState.Pressed, LisaaReunatKentta3, "Kentta 3");
150            Keyboard.Listen(Key.NumPad4, ButtonState.Pressed, LisaaReunatKentta4, "Kentta 4");
151            Keyboard.Listen(Key.NumPad5, ButtonState.Pressed, LisaaReunatKentta5, "Kentta 5");
152            Keyboard.Listen(Key.NumPad6, ButtonState.Pressed, LisaaReunatKentta6, "Kentta 6");
153            Keyboard.Listen(Key.NumPad7, ButtonState.Pressed, LisaaReunatKentta7, "Kentta 7");
154            Keyboard.Listen(Key.NumPad8, ButtonState.Pressed, LisaaReunatKentta8, "Kentta 8");
155            Keyboard.Listen(Key.NumPad9, ButtonState.Pressed, LisaaReunatKentta9, "Kentta 9");
156            Keyboard.Listen(Key.NumPad0, ButtonState.Pressed, LisaaReunatKentta0, "Kentta 0");
157
158            Keyboard.Listen(Key.Up, ButtonState.Down, kiihdyta, "Kiihdytä", auto);
159            Keyboard.Listen(Key.Down, ButtonState.Down, jarruta, "Jarruta", auto);
160            Keyboard.Listen(Key.Left, ButtonState.Down, kaanny, "Käänny vasemmalle", auto, Angle.Degrees(-160));
161            Keyboard.Listen(Key.Right, ButtonState.Down, kaanny, "Käänny oikealle", auto, Angle.Degrees(160));
162            Keyboard.Listen(Key.O, ButtonState.Pressed, highscorepelista, "HighestScoresByDaniMään");
163            Keyboard.Listen(Key.M, ButtonState.Pressed, Begin, "Valikkoon");
164
165            ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, kaanny, "Käänny vasemmalle", auto, Angle.Degrees(-160));
166            ControllerOne.Listen(Button.DPadRight, ButtonState.Down, kaanny, "Käänny oikealle", auto, Angle.Degrees(160));
167            ControllerOne.Listen(Button.RightTrigger, ButtonState.Down, kiihdyta, "Kiihdytä", auto);
168            ControllerOne.Listen(Button.LeftTrigger, ButtonState.Down, jarruta, "Jarruta", auto);
169
170
171
172
173            Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
174
175
176
177        }
178
179        void highscorepelista()
180        {
181            HighScoreList lista = HighScoreList.LoadOrCreate("highscore01.dat", 20);
182            lista.ReverseOrder = true;
183            MessageDisplay.Add(((int)(kierrosAika.TotalMilliseconds)).ToString());
184           
185            // TODO: Show-metodi ei anna nimen syöttö dialog boksia ???
186
187            lista.Show((int)(kierrosAika.TotalMilliseconds));
188            lista.ScreenList.ItemColor = Color.Red;
189            lista.ScreenList.BackGroundColor = Color.Black;
190
191
192        }
193
194        void LisaaNappaimet()
195        {
196            Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
197            Keyboard.Listen(Key.NumPad1, ButtonState.Pressed, LisaaReunatKentta1, "Kentta 1");
198            Keyboard.Listen(Key.NumPad2, ButtonState.Pressed, LisaaReunatKentta2, "Kentta 2");
199            Keyboard.Listen(Key.NumPad3, ButtonState.Pressed, LisaaReunatKentta3, "Kentta 3");
200            Keyboard.Listen(Key.NumPad4, ButtonState.Pressed, LisaaReunatKentta4, "Kentta 4");
201            Keyboard.Listen(Key.NumPad5, ButtonState.Pressed, LisaaReunatKentta5, "Kentta 5");
202            Keyboard.Listen(Key.NumPad6, ButtonState.Pressed, LisaaReunatKentta6, "Kentta 6");
203            Keyboard.Listen(Key.NumPad7, ButtonState.Pressed, LisaaReunatKentta7, "Kentta 7");
204            Keyboard.Listen(Key.NumPad8, ButtonState.Pressed, LisaaReunatKentta8, "Kentta 8");
205            Keyboard.Listen(Key.NumPad9, ButtonState.Pressed, LisaaReunatKentta9, "Kentta 9");
206            Keyboard.Listen(Key.NumPad0, ButtonState.Pressed, LisaaReunatKentta0, "Kentta 0");
207           
208        }
209
210        void LisaaReunat()
211        {
212            if (kentta == 1)
213            {
214                LisaaReunatKentta1();
215            }
216            else if (kentta == 2)
217            {
218                LisaaReunatKentta2();
219            }
220            else if (kentta == 3)
221            {
222                LisaaReunatKentta3();
223            }
224            else if (kentta == 4)
225            {
226                LisaaReunatKentta4();
227            }
228
229        }
230
231
232        void LisaaReunatKentta1()
233        {
234
235            ClearAll();
236           
237            PhysicsObject taso = PhysicsObject.CreateStaticObject(1200, 1000);
238            taso.Image = LoadImage("rata_oval01");
239            taso.IsVisible = true;
240            AddSurface(taso);
241
242            checkpoint = PhysicsObject.CreateStaticObject(2, 275);
243            checkpoint.IsVisible = true;
244            checkpoint.IgnoresCollisionResponse = true;
245            checkpoint.X = 0;
246            checkpoint.Y = 350;
247            Add(checkpoint);
248
249            valipoint = PhysicsObject.CreateStaticObject(2, 275);
250            valipoint.IsVisible = false;
251            valipoint.IgnoresCollisionResponse = true;
252            valipoint.X = -20;
253            valipoint.Y = -350;
254            Add(valipoint);
255
256            viiva = PhysicsObject.CreateStaticObject(10, 730);
257            viiva.IsVisible = true;
258            viiva.Angle = Angle.Degrees(60);
259
260            viiva2 = PhysicsObject.CreateStaticObject(10, 730);
261            viiva2.IsVisible = true;
262            viiva2.Angle = Angle.Degrees(-60);
263
264            //KineticFriction = 0.1; // Asetetaan kitka
265            Gravity = 300;
266
267            viiva.X = 0;
268            viiva.Y = 0;
269            viiva2.X = 0;
270            viiva2.Y = 0;
271
272            viiva.Color = Color.Black;
273            viiva2.Color = Color.Black;
274           
275            AddSurface(viiva);
276            AddSurface(viiva2);
277
278            reunaOikea = PhysicsObject.CreateStaticObject(25, 1400);
279            reunaOikea.IsVisible = true;
280            reunaOikea.X = 700;
281            reunaOikea.Y = 0;
282            Add(reunaOikea);
283
284            reunaVasen = PhysicsObject.CreateStaticObject(25, 1400 );
285            reunaVasen.IsVisible = true;
286            reunaVasen.X = -700;
287            reunaVasen.Y = 0;
288            Add(reunaVasen);
289
290            reunaYla = PhysicsObject.CreateStaticObject(1400, 25);
291            reunaYla.IsVisible = true;
292            reunaYla.X = 0;
293            reunaYla.Y = 600;
294            Add(reunaYla);
295
296            reunaAlas = PhysicsObject.CreateStaticObject(1400, 25);
297            reunaAlas.IsVisible = true;
298            reunaAlas.X = 0;
299            reunaAlas.Y = -600;
300            Add(reunaAlas);
301
302
303            LuoAuto();
304            NappaimetAutossa();
305        }
306
307
308        void LisaaReunatKentta2()
309        {
310            ClearAll();
311
312            PhysicsObject taso = PhysicsObject.CreateStaticObject(1200, 1000);
313            taso.Image = LoadImage("rata_super02");
314            taso.IsVisible = true;
315            AddSurface(taso);
316
317            checkpoint = PhysicsObject.CreateStaticObject(2, 375);
318            checkpoint.IsVisible = true;
319            checkpoint.IgnoresCollisionResponse = true;
320            checkpoint.X = 0;
321            checkpoint.Y = 350;
322            Add(checkpoint);
323
324            valipoint = PhysicsObject.CreateStaticObject(2, 700);
325            valipoint.IsVisible = false;
326            valipoint.IgnoresCollisionResponse = true;
327            valipoint.X = -20;
328            valipoint.Y = -300;
329            Add(valipoint);
330
331            viiva3 = PhysicsObject.CreateStaticObject(657, 10);
332            viiva3.IsVisible = true;
333            viiva3.Angle = Angle.Degrees(0);
334
335            viiva4 = PhysicsObject.CreateStaticObject(10, 520);
336            viiva4.IsVisible = true;
337            viiva4.Angle = Angle.Degrees(0);
338
339            viiva5 = PhysicsObject.CreateStaticObject(35, 10);
340            viiva5.IsVisible = true;
341            viiva5.Angle = Angle.Degrees(0);
342
343            viiva6 = PhysicsObject.CreateStaticObject(10, 150);
344            viiva6.IsVisible = true;
345            viiva6.Angle = Angle.Degrees(0);
346
347            viiva7 = PhysicsObject.CreateStaticObject(10, 100);
348            viiva7.IsVisible = true;
349            viiva7.Angle = Angle.Degrees(0);
350
351            viiva8 = PhysicsObject.CreateStaticObject(10, 500);
352            viiva8.IsVisible = true;
353            viiva8.Angle = Angle.Degrees(-9);
354
355            //KineticFriction = 0.1; // Asetetaan kitka
356            Gravity = 300;
357
358            viiva3.X = -40;
359            viiva3.Y = 50;
360            viiva4.X = -370;
361            viiva4.Y = 0;
362            viiva5.X = 570;
363            viiva5.Y = 50;
364            viiva6.X = -40;
365            viiva6.Y = -370;
366            viiva7.X = -60;
367            viiva7.Y = 437;
368            viiva8.X = 280;
369            viiva8.Y = 0;
370
371            viiva3.Color = Color.Black;
372            viiva4.Color = Color.Black ;
373            viiva5.Color = Color.Black ;
374            viiva6.Color = Color.Black ;
375            viiva7.Color = Color.Black ;
376            viiva8.Color = Color.Black;
377
378            AddSurface(viiva3);
379            AddSurface(viiva4);
380            AddSurface(viiva5);
381            AddSurface(viiva6);
382            AddSurface(viiva7);
383            AddSurface(viiva8);
384
385            reunaOikea = PhysicsObject.CreateStaticObject(25, 1400);
386            reunaOikea.IsVisible = true;
387            reunaOikea.X = 700;
388            reunaOikea.Y = 0;
389            Add(reunaOikea);
390
391            reunaVasen = PhysicsObject.CreateStaticObject(25, 1400);
392            reunaVasen.IsVisible = true;
393            reunaVasen.X = -700;
394            reunaVasen.Y = 0;
395            Add(reunaVasen);
396
397            reunaYla = PhysicsObject.CreateStaticObject(1400, 25);
398            reunaYla.IsVisible = true;
399            reunaYla.X = 0;
400            reunaYla.Y = 600;
401            Add(reunaYla);
402
403            reunaAlas = PhysicsObject.CreateStaticObject(1400, 25);
404            reunaAlas.IsVisible = true;
405            reunaAlas.X = 0;
406            reunaAlas.Y = -600;
407            Add(reunaAlas);
408
409
410            LuoAuto();
411            NappaimetAutossa();
412
413        }
414
415        void LisaaReunatKentta3()
416        {
417            ClearAll();
418           
419
420            PhysicsObject taso = PhysicsObject.CreateStaticObject(1200, 1000);
421            taso.Image = LoadImage("rata_deadend03");
422            taso.IsVisible = true;
423            AddSurface(taso);
424
425            checkpoint = PhysicsObject.CreateStaticObject(2, 225);
426            checkpoint.IsVisible = true;
427            checkpoint.IgnoresCollisionResponse = true;
428            checkpoint.X = 150;
429            checkpoint.Y = 350;
430            Add(checkpoint);
431
432            valipoint = PhysicsObject.CreateStaticObject(2, 250);
433            valipoint.IsVisible = true;
434            valipoint.IgnoresCollisionResponse = true;
435            valipoint.X = -20;
436            valipoint.Y = -350;
437            Add(valipoint);
438
439            viiva9 = PhysicsObject.CreateStaticObject(657, 10);
440            viiva9.IsVisible = true;
441            viiva9.Angle = Angle.Degrees(0);
442
443            viiva10 = PhysicsObject.CreateStaticObject(10, 450);
444            viiva10.IsVisible = true;
445            viiva10.Angle = Angle.Degrees(0);
446
447            viiva11 = PhysicsObject.CreateStaticObject(35, 10);
448            viiva11.IsVisible = true;
449            viiva11.Angle = Angle.Degrees(0);
450
451            viiva12 = PhysicsObject.CreateStaticObject(935, 10);
452            viiva12.IsVisible = true;
453            viiva12.Angle = Angle.Degrees(0);
454
455            viiva13 = PhysicsObject.CreateStaticObject(385, 10);
456            viiva13.IsVisible = true;
457            viiva13.Angle = Angle.Degrees(0);
458
459
460            //KineticFriction = 0.1; // Asetetaan kitka
461            Gravity = 300;
462
463            viiva9.X = -40;
464            viiva9.Y = -215;
465            viiva10.X = 245;
466            viiva10.Y = 13;
467            viiva11.X = 540;
468            viiva11.Y = -10;
469            viiva12.X = -460;
470            viiva12.Y = 70;
471            viiva13.X = 130;
472            viiva13.Y = 240;
473
474            viiva9.Color = Color.Black;
475            viiva10.Color = Color.Black;
476            viiva11.Color = Color.Black;
477            viiva12.Color = Color.Black;
478            viiva13.Color = Color.Black;
479
480            AddSurface(viiva9);
481            AddSurface(viiva10);
482            AddSurface(viiva11);
483            AddSurface(viiva12);
484            AddSurface(viiva13);
485
486            reunaOikea = PhysicsObject.CreateStaticObject(25, 1400);
487            reunaOikea.IsVisible = true;
488            reunaOikea.X = 700;
489            reunaOikea.Y = 0;
490            Add(reunaOikea);
491
492            reunaVasen = PhysicsObject.CreateStaticObject(25, 1400);
493            reunaVasen.IsVisible = true;
494            reunaVasen.X = -700;
495            reunaVasen.Y = 0;
496            Add(reunaVasen);
497
498            reunaYla = PhysicsObject.CreateStaticObject(1400, 25);
499            reunaYla.IsVisible = true;
500            reunaYla.X = 0;
501            reunaYla.Y = 600;
502            Add(reunaYla);
503
504            reunaAlas = PhysicsObject.CreateStaticObject(1400, 25);
505            reunaAlas.IsVisible = true;
506            reunaAlas.X = 0;
507            reunaAlas.Y = -600;
508            Add(reunaAlas);
509
510
511            LuoAuto();
512            NappaimetAutossa();
513
514        }
515
516        void LisaaReunatKentta4()
517        {
518            ClearAll();
519
520            PhysicsObject taso = PhysicsObject.CreateStaticObject(1200, 1000);
521            taso.Image = LoadImage("rata_snoopy04");
522            taso.IsVisible = true;
523            AddSurface(taso);
524
525            checkpoint = PhysicsObject.CreateStaticObject(2, 225);
526            checkpoint.IsVisible = true;
527            checkpoint.IgnoresCollisionResponse = true;
528            checkpoint.X = 150;
529            checkpoint.Y = 350;
530            Add(checkpoint);
531
532            valipoint = PhysicsObject.CreateStaticObject(2, 250);
533            valipoint.IsVisible = true;
534            valipoint.IgnoresCollisionResponse = true;
535            valipoint.X = -120;
536            valipoint.Y = -350;
537            Add(valipoint);
538
539            viiva14 = PhysicsObject.CreateStaticObject(500, 10);
540            viiva14.IsVisible = true;
541            viiva14.Angle = Angle.Degrees(-55);
542
543            viiva15 = PhysicsObject.CreateStaticObject(10, 470);
544            viiva15.IsVisible = true;
545            viiva15.Angle = Angle.Degrees(-41);
546
547            viiva16 = PhysicsObject.CreateStaticObject(350, 10);
548            viiva16.IsVisible = true;
549            viiva16.Angle = Angle.Degrees(0);
550
551            viiva17 = PhysicsObject.CreateStaticObject(265, 10);
552            viiva17.IsVisible = true;
553            viiva17.Angle = Angle.Degrees(99);
554
555            viiva18 = PhysicsObject.CreateStaticObject(635, 10);
556            viiva18.IsVisible = true;
557            viiva18.Angle = Angle.Degrees(119);
558
559            viiva19 = PhysicsObject.CreateStaticObject(200, 10);
560            viiva19.IsVisible = true;
561            viiva19.Angle = Angle.Degrees(90);
562
563            //KineticFriction = 0.1; // Asetetaan kitka
564            Gravity = 300;
565
566            viiva14.X = -275;
567            viiva14.Y = -5;
568            viiva15.X = -84;
569            viiva15.Y = 115;
570            viiva16.X = 670;
571            viiva16.Y = 130;
572            viiva17.X = 99;
573            viiva17.Y = -245;
574            viiva18.X = 250;
575            viiva18.Y = 10;
576            viiva19.X = -220;
577            viiva19.Y = 405;
578
579            viiva14.Color = Color.Black;
580            viiva15.Color = Color.Black;
581            viiva16.Color = Color.Black;
582            viiva17.Color = Color.Black;
583            viiva18.Color = Color.Black;
584            viiva19.Color = Color.Black;
585
586            AddSurface(viiva14);
587            AddSurface(viiva15);
588            AddSurface(viiva16);
589            AddSurface(viiva17);
590            AddSurface(viiva18);
591            AddSurface(viiva19);
592
593            reunaOikea = PhysicsObject.CreateStaticObject(25, 1400);
594            reunaOikea.IsVisible = true;
595            reunaOikea.X = 700;
596            reunaOikea.Y = 0;
597            Add(reunaOikea);
598
599            reunaVasen = PhysicsObject.CreateStaticObject(25, 1400);
600            reunaVasen.IsVisible = true;
601            reunaVasen.X = -700;
602            reunaVasen.Y = 0;
603            Add(reunaVasen);
604
605            reunaYla = PhysicsObject.CreateStaticObject(1400, 25);
606            reunaYla.IsVisible = true;
607            reunaYla.X = 0;
608            reunaYla.Y = 600;
609            Add(reunaYla);
610
611            reunaAlas = PhysicsObject.CreateStaticObject(1400, 25);
612            reunaAlas.IsVisible = true;
613            reunaAlas.X = 0;
614            reunaAlas.Y = -600;
615            Add(reunaAlas);
616
617
618            LuoAuto();
619            NappaimetAutossa();
620
621        }
622
623        void LisaaReunatKentta5()
624        {
625            ClearAll();
626
627            PhysicsObject taso = PhysicsObject.CreateStaticObject(1200, 1000);
628            taso.Image = LoadImage("rata_b05");
629            taso.IsVisible = true;
630            AddSurface(taso);
631
632            checkpoint = PhysicsObject.CreateStaticObject(2, 275);
633            checkpoint.IsVisible = true;
634            checkpoint.IgnoresCollisionResponse = true;
635            checkpoint.X = 0;
636            checkpoint.Y = 350;
637            Add(checkpoint);
638
639            valipoint = PhysicsObject.CreateStaticObject(2, 275);
640            valipoint.IsVisible = false;
641            valipoint.IgnoresCollisionResponse = true;
642            valipoint.X = -20;
643            valipoint.Y = -350;
644            Add(valipoint);
645
646            viiva20 = PhysicsObject.CreateStaticObject(10, 489);
647            viiva20.IsVisible = true;
648            viiva20.Angle = Angle.Degrees(0);
649
650            viiva21 = PhysicsObject.CreateStaticObject(10, 600);
651            viiva21.IsVisible = true;
652            viiva21.Angle = Angle.Degrees(-90);
653
654            viiva22 = PhysicsObject.CreateStaticObject(10, 630);
655            viiva22.IsVisible = true;
656            viiva22.Angle = Angle.Degrees(-90);
657
658            viiva23 = PhysicsObject.CreateStaticObject(175, 10);
659            viiva23.IsVisible = true;
660            viiva23.Angle = Angle.Degrees(0);
661
662            //KineticFriction = 0.1; // Asetetaan kitka
663            Gravity = 300;
664
665            viiva20.X = 295;
666            viiva20.Y = -7;
667            viiva21.X = 0;
668            viiva21.Y = 240;
669            viiva22.X = -21;
670            viiva22.Y = -180;
671            viiva23.X = -590;
672            viiva23.Y = 70;
673
674            viiva20.Color = Color.Black;
675            viiva21.Color = Color.Black;
676            viiva22.Color = Color.Black;
677            viiva23.Color = Color.Black;
678
679            AddSurface(viiva20);
680            AddSurface(viiva21);
681            AddSurface(viiva22);
682            AddSurface(viiva23);
683
684            reunaOikea = PhysicsObject.CreateStaticObject(25, 1400);
685            reunaOikea.IsVisible = true;
686            reunaOikea.X = 700;
687            reunaOikea.Y = 0;
688            Add(reunaOikea);
689
690            reunaVasen = PhysicsObject.CreateStaticObject(25, 1400);
691            reunaVasen.IsVisible = true;
692            reunaVasen.X = -700;
693            reunaVasen.Y = 0;
694            Add(reunaVasen);
695
696            reunaYla = PhysicsObject.CreateStaticObject(1400, 25);
697            reunaYla.IsVisible = true;
698            reunaYla.X = 0;
699            reunaYla.Y = 600;
700            Add(reunaYla);
701
702            reunaAlas = PhysicsObject.CreateStaticObject(1400, 25);
703            reunaAlas.IsVisible = true;
704            reunaAlas.X = 0;
705            reunaAlas.Y = -600;
706            Add(reunaAlas);
707
708
709            LuoAuto();
710            NappaimetAutossa();
711
712        }
713
714        void LisaaReunatKentta6()
715        {
716            ClearAll();
717
718            PhysicsObject taso = PhysicsObject.CreateStaticObject(1200, 1000);
719            taso.Image = LoadImage("rata_around06");
720            taso.IsVisible = true;
721            AddSurface(taso);
722
723            checkpoint = PhysicsObject.CreateStaticObject(2, 275);
724            checkpoint.IsVisible = true;
725            checkpoint.IgnoresCollisionResponse = true;
726            checkpoint.X = 250;
727            checkpoint.Y = 350;
728            Add(checkpoint);
729
730            valipoint = PhysicsObject.CreateStaticObject(2, 275);
731            valipoint.IsVisible = false;
732            valipoint.IgnoresCollisionResponse = true;
733            valipoint.X = -220;
734            valipoint.Y = -350;
735            Add(valipoint);
736
737            viiva24 = PhysicsObject.CreateStaticObject(10, 409);
738            viiva24.IsVisible = true;
739            viiva24.Angle = Angle.Degrees(0);
740
741            viiva25 = PhysicsObject.CreateStaticObject(10, 340);
742            viiva25.IsVisible = true;
743            viiva25.Angle = Angle.Degrees(0);
744
745            viiva26 = PhysicsObject.CreateStaticObject(10, 730);
746            viiva26.IsVisible = true;
747            viiva26.Angle = Angle.Degrees(-90);
748
749            viiva27 = PhysicsObject.CreateStaticObject(155, 10);
750            viiva27.IsVisible = true;
751            viiva27.Angle = Angle.Degrees(90);
752
753            //KineticFriction = 0.1; // Asetetaan kitka
754            Gravity = 300;
755
756            viiva24.X = 350;
757            viiva24.Y = 7;
758            viiva25.X = -117;
759            viiva25.Y = 320;
760            viiva26.X = 1;
761            viiva26.Y = -180;
762            viiva27.X = -322;
763            viiva27.Y = -100;
764
765            viiva24.Color = Color.Black;
766            viiva25.Color = Color.Black;
767            viiva26.Color = Color.Black;
768            viiva27.Color = Color.Black;
769
770            AddSurface(viiva24);
771            AddSurface(viiva25);
772            AddSurface(viiva26);
773            AddSurface(viiva27);
774
775            reunaOikea = PhysicsObject.CreateStaticObject(25, 1400);
776            reunaOikea.IsVisible = true;
777            reunaOikea.X = 700;
778            reunaOikea.Y = 0;
779            Add(reunaOikea);
780
781            reunaVasen = PhysicsObject.CreateStaticObject(25, 1400);
782            reunaVasen.IsVisible = true;
783            reunaVasen.X = -700;
784            reunaVasen.Y = 0;
785            Add(reunaVasen);
786
787            reunaYla = PhysicsObject.CreateStaticObject(1400, 25);
788            reunaYla.IsVisible = true;
789            reunaYla.X = 0;
790            reunaYla.Y = 600;
791            Add(reunaYla);
792
793            reunaAlas = PhysicsObject.CreateStaticObject(1400, 25);
794            reunaAlas.IsVisible = true;
795            reunaAlas.X = 0;
796            reunaAlas.Y = -600;
797            Add(reunaAlas);
798
799
800            LuoAuto();
801            NappaimetAutossa();
802
803        }
804
805        void LisaaReunatKentta7()
806        {
807            ClearAll();
808
809            PhysicsObject taso = PhysicsObject.CreateStaticObject(1200, 800);
810            taso.Image = LoadImage("rata_wheelie07");
811            taso.IsVisible = true;
812            AddSurface(taso);
813
814            checkpoint = PhysicsObject.CreateStaticObject(2, 275);
815            checkpoint.IsVisible = false;
816            checkpoint.IgnoresCollisionResponse = true;
817            checkpoint.X = -72;
818            checkpoint.Y = 350;
819            Add(checkpoint);
820
821            valipoint = PhysicsObject.CreateStaticObject(2, 275);
822            valipoint.IsVisible = false;
823            valipoint.IgnoresCollisionResponse = true;
824            valipoint.X = -72;
825            valipoint.Y = -350;
826            Add(valipoint);
827
828            viiva28 = PhysicsObject.CreateStaticObject(10, 409);
829            viiva28.IsVisible = false;
830            viiva28.Angle = Angle.Degrees(45);
831
832            viiva29 = PhysicsObject.CreateStaticObject(10, 409);
833            viiva29.IsVisible = false;
834            viiva29.Angle = Angle.Degrees(-45);
835
836
837            //KineticFriction = 0.1; // Asetetaan kitka
838            Gravity = 300;
839
840            viiva28.X = -72;
841            viiva28.Y = 0;
842
843            viiva29.X = -72;
844            viiva29.Y = 0;
845
846            viiva28.Color = Color.Black;
847            viiva29.Color = Color.Black;
848
849            AddSurface(viiva28);
850            AddSurface(viiva29);
851
852            reunaOikea = PhysicsObject.CreateStaticObject(25, 1400);
853            reunaOikea.IsVisible = true;
854            reunaOikea.X = 700;
855            reunaOikea.Y = 0;
856            Add(reunaOikea);
857
858            reunaVasen = PhysicsObject.CreateStaticObject(25, 1400);
859            reunaVasen.IsVisible = true;
860            reunaVasen.X = -700;
861            reunaVasen.Y = 0;
862            Add(reunaVasen);
863
864            reunaYla = PhysicsObject.CreateStaticObject(1400, 25);
865            reunaYla.IsVisible = true;
866            reunaYla.X = 0;
867            reunaYla.Y = 600;
868            Add(reunaYla);
869
870            reunaAlas = PhysicsObject.CreateStaticObject(1400, 25);
871            reunaAlas.IsVisible = true;
872            reunaAlas.X = 0;
873            reunaAlas.Y = -600;
874            Add(reunaAlas);
875
876
877            LuoAuto();
878            NappaimetAutossa();
879
880
881        }
882
883        void LisaaReunatKentta8()
884        {
885            ClearAll();
886
887            PhysicsObject taso = PhysicsObject.CreateStaticObject(1200, 800);
888            taso.Image = LoadImage("rata_drivein08");
889            taso.IsVisible = true;
890            AddSurface(taso);
891
892            checkpoint = PhysicsObject.CreateStaticObject(275, 2);
893            checkpoint.IsVisible = true;
894            checkpoint.IgnoresCollisionResponse = true;
895            checkpoint.X = 492;
896            checkpoint.Y = 0;
897            Add(checkpoint);
898
899            valipoint = PhysicsObject.CreateStaticObject(275, 2);
900            valipoint.IsVisible = false;
901            valipoint.IgnoresCollisionResponse = true;
902            valipoint.X = -492;
903            valipoint.Y = 0;
904            Add(valipoint);
905
906            viiva30 = PhysicsObject.CreateStaticObject(10, 409);
907            viiva30.IsVisible = true;
908            viiva30.Angle = Angle.Degrees(0);
909
910            viiva31 = PhysicsObject.CreateStaticObject(10, 389);
911            viiva31.IsVisible = true;
912            viiva31.Angle = Angle.Degrees(0);
913
914            viiva32 = PhysicsObject.CreateStaticObject(10, 699);
915            viiva32.IsVisible = true;
916            viiva32.Angle = Angle.Degrees(90);
917
918            viiva33 = PhysicsObject.CreateStaticObject(10, 409);
919            viiva33.IsVisible = true;
920            viiva33.Angle = Angle.Degrees(0);
921
922
923            //KineticFriction = 0.1; // Asetetaan kitka
924            Gravity = 300;
925
926            viiva30.X = -20;
927            viiva30.Y = 300;
928
929            viiva31.X = -352;
930            viiva31.Y = -83;
931
932            viiva32.X = 2;
933            viiva32.Y = -260;
934
935            viiva33.X = 352;
936            viiva33.Y = -83;
937
938            viiva30.Color = Color.Black;
939            viiva30.Color = Color.Black;
940
941            viiva31.Color = Color.Black;
942            viiva31.Color = Color.Black;
943
944            viiva32.Color = Color.Black;
945            viiva32.Color = Color.Black;
946
947            viiva33.Color = Color.Black;
948            viiva33.Color = Color.Black;
949
950            AddSurface(viiva30);
951            AddSurface(viiva31);
952            AddSurface(viiva32);
953            AddSurface(viiva33);
954
955            reunaOikea = PhysicsObject.CreateStaticObject(25, 1400);
956            reunaOikea.IsVisible = true;
957            reunaOikea.X = 700;
958            reunaOikea.Y = 0;
959            Add(reunaOikea);
960
961            reunaVasen = PhysicsObject.CreateStaticObject(25, 1400);
962            reunaVasen.IsVisible = true;
963            reunaVasen.X = -700;
964            reunaVasen.Y = 0;
965            Add(reunaVasen);
966
967            reunaYla = PhysicsObject.CreateStaticObject(1400, 25);
968            reunaYla.IsVisible = true;
969            reunaYla.X = 0;
970            reunaYla.Y = 600;
971            Add(reunaYla);
972
973            reunaAlas = PhysicsObject.CreateStaticObject(1400, 25);
974            reunaAlas.IsVisible = true;
975            reunaAlas.X = 0;
976            reunaAlas.Y = -600;
977            Add(reunaAlas);
978
979
980            LuoAuto();
981            NappaimetAutossa();
982
983        }
984
985        void LisaaReunatKentta9()
986        {
987            ClearAll();
988
989            PhysicsObject taso = PhysicsObject.CreateStaticObject(1200, 900);
990            taso.Image = LoadImage("rata_fisu09");
991            taso.IsVisible = true;
992            AddSurface(taso);
993
994            checkpoint = PhysicsObject.CreateStaticObject(100, 2);
995            checkpoint.IsVisible = true;
996            checkpoint.IgnoresCollisionResponse = true;
997            checkpoint.X = 312;
998            checkpoint.Y = 100;
999            Add(checkpoint);
1000
1001            valipoint = PhysicsObject.CreateStaticObject(275, 2);
1002            valipoint.IsVisible = true;
1003            valipoint.IgnoresCollisionResponse = true;
1004            valipoint.X = -412;
1005            valipoint.Y = 30;
1006            Add(valipoint);
1007
1008            viiva34 = PhysicsObject.CreateStaticObject(10, 160);
1009            viiva34.IsVisible = true;
1010            viiva34.Angle = Angle.Degrees(4);
1011
1012            viiva35 = PhysicsObject.CreateStaticObject(10, 120);
1013            viiva35.IsVisible = true;
1014            viiva35.Angle = Angle.Degrees(4);
1015
1016            viiva36 = PhysicsObject.CreateStaticObject(10, 380);
1017            viiva36.IsVisible = true;
1018            viiva36.Angle = Angle.Degrees(- 16);
1019
1020            viiva37 = PhysicsObject.CreateStaticObject(10, 509);
1021            viiva37.IsVisible = true;
1022            viiva37.Angle = Angle.Degrees(81);
1023
1024            viiva38 = PhysicsObject.CreateStaticObject(10, 409);
1025            viiva38.IsVisible = true;
1026            viiva38.Angle = Angle.Degrees(-16);
1027
1028            viiva39 = PhysicsObject.CreateStaticObject(10, 100);
1029            viiva39.IsVisible = true;
1030            viiva39.Angle = Angle.Degrees(72);
1031
1032            viiva40 = PhysicsObject.CreateStaticObject(10, 270);
1033            viiva40.IsVisible = true;
1034            viiva40.Angle = Angle.Degrees(74);
1035
1036
1037            //KineticFriction = 0.1; // Asetetaan kitka
1038            Gravity = 300;
1039
1040            viiva34.X = 260;
1041            viiva34.Y = 85;
1042
1043            viiva35.X = 360;
1044            viiva35.Y = 100;
1045
1046            viiva36.X = -280;
1047            viiva36.Y = 5;
1048
1049            viiva37.X = 2;
1050            viiva37.Y = 153;
1051
1052            viiva38.X = 2;
1053            viiva38.Y = -50;
1054
1055            viiva39.X = -492;
1056            viiva39.Y = -283;
1057
1058            viiva40.X = 120;
1059            viiva40.Y = 320;
1060
1061            viiva34.Color = Color.Black;
1062            viiva35.Color = Color.Black;
1063            viiva36.Color = Color.Black;
1064            viiva37.Color = Color.Black;
1065            viiva38.Color = Color.Black;
1066            viiva39.Color = Color.Black;
1067            viiva40.Color = Color.Black;
1068
1069            AddSurface(viiva34);
1070            AddSurface(viiva35);
1071            AddSurface(viiva36);
1072            AddSurface(viiva37);
1073            AddSurface(viiva38);
1074            AddSurface(viiva39);
1075            AddSurface(viiva40);
1076
1077            reunaOikea = PhysicsObject.CreateStaticObject(25, 1400);
1078            reunaOikea.IsVisible = true;
1079            reunaOikea.X = 700;
1080            reunaOikea.Y = 0;
1081            Add(reunaOikea);
1082
1083            reunaVasen = PhysicsObject.CreateStaticObject(25, 1400);
1084            reunaVasen.IsVisible = true;
1085            reunaVasen.X = -700;
1086            reunaVasen.Y = 0;
1087            Add(reunaVasen);
1088
1089            reunaYla = PhysicsObject.CreateStaticObject(1400, 25);
1090            reunaYla.IsVisible = true;
1091            reunaYla.X = 0;
1092            reunaYla.Y = 600;
1093            Add(reunaYla);
1094
1095            reunaAlas = PhysicsObject.CreateStaticObject(1400, 25);
1096            reunaAlas.IsVisible = true;
1097            reunaAlas.X = 0;
1098            reunaAlas.Y = -600;
1099            Add(reunaAlas);
1100
1101
1102            LuoAuto();
1103            NappaimetAutossa();
1104
1105        }
1106
1107        void LisaaReunatKentta0()
1108        {
1109            ClearAll();
1110
1111            PhysicsObject taso = PhysicsObject.CreateStaticObject(1200, 1000);
1112            taso.Image = LoadImage("rata_tortoiseracing10");
1113            taso.IsVisible = true;
1114            AddSurface(taso);
1115
1116            checkpoint = PhysicsObject.CreateStaticObject(2, 275);
1117            checkpoint.IsVisible = false;
1118            checkpoint.IgnoresCollisionResponse = true;
1119            checkpoint.X = -72;
1120            checkpoint.Y = 350;
1121            Add(checkpoint);
1122
1123            valipoint = PhysicsObject.CreateStaticObject(2, 275);
1124            valipoint.IsVisible = false;
1125            valipoint.IgnoresCollisionResponse = true;
1126            valipoint.X = -72;
1127            valipoint.Y = -350;
1128            Add(valipoint);
1129
1130            viiva41 = PhysicsObject.CreateStaticObject(550, 10);
1131            viiva41.IsVisible = true;
1132            viiva41.Angle = Angle.Degrees(45);
1133
1134            viiva42 = PhysicsObject.CreateStaticObject(550, 10);
1135            viiva42.IsVisible = true;
1136            viiva42.Angle = Angle.Degrees(-45);
1137
1138            viiva43 = PhysicsObject.CreateStaticObject(10, 800);
1139            viiva43.IsVisible = true;
1140            viiva43.Angle = Angle.Degrees(90);
1141
1142            //KineticFriction = 0.1; // Asetetaan kitka
1143            Gravity = 300;
1144
1145            viiva41.X = -250;
1146            viiva41.Y = 101;
1147
1148            viiva42.X = 130;
1149            viiva42.Y = 101;
1150
1151            viiva43.X = -60;
1152            viiva43.Y = -100;
1153
1154
1155            viiva41.Color = Color.Black;
1156            viiva42.Color = Color.Black;
1157            viiva43.Color = Color.Black;
1158
1159            AddSurface(viiva41);
1160            AddSurface(viiva42);
1161            AddSurface(viiva43);
1162
1163            reunaOikea = PhysicsObject.CreateStaticObject(25, 1400);
1164            reunaOikea.IsVisible = true;
1165            reunaOikea.X = 700;
1166            reunaOikea.Y = 0;
1167            Add(reunaOikea);
1168
1169            reunaVasen = PhysicsObject.CreateStaticObject(25, 1400);
1170            reunaVasen.IsVisible = true;
1171            reunaVasen.X = -700;
1172            reunaVasen.Y = 0;
1173            Add(reunaVasen);
1174
1175            reunaYla = PhysicsObject.CreateStaticObject(1400, 25);
1176            reunaYla.IsVisible = true;
1177            reunaYla.X = 0;
1178            reunaYla.Y = 600;
1179            Add(reunaYla);
1180
1181            reunaAlas = PhysicsObject.CreateStaticObject(1400, 25);
1182            reunaAlas.IsVisible = true;
1183            reunaAlas.X = 0;
1184            reunaAlas.Y = -600;
1185            Add(reunaAlas);
1186
1187
1188            LuoAuto();
1189            NappaimetAutossa();
1190        }
1191
1192        void kiihdyta(Automobile auto)
1193        {
1194            //MessageDisplay.Add("" + pistelaskuri.CurrentTime);
1195            auto.Accelerate(Time.SinceLastUpdate.TotalSeconds);
1196
1197        }
1198
1199        void jarruta(Automobile auto)
1200        {
1201            auto.Brake(Time.SinceLastUpdate.TotalSeconds);
1202        }
1203
1204        void kaanny(Automobile auto, Angle kaannos)
1205        {
1206            auto.Turn(kaannos, Time.SinceLastUpdate.TotalSeconds);
1207           
1208        }
1209    }
1210}
Note: See TracBrowser for help on using the repository browser.