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

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

Tortoise final

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