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

Revision 605, 4.8 KB checked in by veeevauh, 11 years ago (diff)

TortoiseRacing? edistyy

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        PhysicsObject viiva;
12        PhysicsObject viiva2;
13        double kentta = 1;
14
15        protected override void Begin()
16        {
17            TeeTaso();
18            LuoAuto();
19            HoidaHommat();
20            LisaaReunat();
21
22
23        }
24
25        void LuoAuto()
26        {
27            auto = new Automobile(57.5, 40);
28            auto.Mass = 100.0;
29            auto.Acceleration = 550;
30            auto.KineticFriction = 1;
31            auto.X = 0;
32            auto.Y = 300;
33            auto.Color = new Color(192, 192, 255);
34            auto.Maneuverability = Angle.Radians(Math.PI);
35            auto.IsVisible = true;
36            Add(auto);
37            auto.TopSpeed = 0.03;
38            auto.Image = LoadImage("tortoise1");
39
40            AddCollisionHandler(auto, TortoiseTormasiViiva);
41
42           
43        }
44
45        void TortoiseTormasiViiva(PhysicsObject auto, PhysicsObject kohde)
46        {
47            if ((kohde == viiva) || (kohde == viiva2))
48            {
49                //Vector temp = auto.Velocity;
50                //auto.Stop();
51                auto.Velocity = -auto.Velocity;
52            }
53        }
54
55        void TeeTaso()
56        {
57
58            PhysicsObject taso = PhysicsObject.CreateStaticObject(1200, 1000);
59            taso.IsVisible = true;
60            taso.Image = LoadImage("rata_oval01");
61            AddSurface(taso);
62        }
63
64        void HoidaHommat()
65        {
66            KineticFriction = 30000000000000; // Asetetaan kitka
67            Gravity = 300;
68
69
70            Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
71
72            Keyboard.Listen(Key.Up, ButtonState.Down, kiihdyta, "Kiihdytä", auto);
73            Keyboard.Listen(Key.Down, ButtonState.Down, jarruta, "Jarruta", auto);
74            Keyboard.Listen(Key.Left, ButtonState.Down, kaanny, "Käänny vasemmalle", auto, Angle.Degrees(-160));
75            Keyboard.Listen(Key.Right, ButtonState.Down, kaanny, "Käänny oikealle", auto, Angle.Degrees(160));
76
77            ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, kaanny, "Käänny vasemmalle", auto, Angle.Degrees(-160));
78            ControllerOne.Listen(Button.DPadRight, ButtonState.Down, kaanny, "Käänny oikealle", auto, Angle.Degrees(160));
79            ControllerOne.Listen(Button.RightTrigger, ButtonState.Down, kiihdyta, "Kiihdytä", auto);
80            ControllerOne.Listen(Button.LeftTrigger, ButtonState.Down, jarruta, "Jarruta", auto);
81
82
83            ShowControlHelp();
84        }
85
86        void LisaaReunat()
87        {
88            if (kentta == 1)
89            {
90                LisaaReunatKentta1();
91            }
92            else if (kentta == 2)
93            {
94                LisaaReunatKentta2();
95            }
96            else if (kentta == 3)
97            {
98                LisaaReunatKentta3();
99            }
100            else if (kentta == 4)
101            {
102                LisaaReunatKentta4();
103            }
104
105        }
106
107        void LisaaReunatKentta1()
108        {
109            viiva = PhysicsObject.CreateStaticObject(10, 730);
110            viiva.IsVisible = true;
111            viiva.Angle = Angle.Degrees(60);
112
113            viiva2 = PhysicsObject.CreateStaticObject(10, 730);
114            viiva2.IsVisible = true;
115            viiva2.Angle = Angle.Degrees(-60);
116
117
118            viiva.X = 0;
119            viiva.Y = 0;
120            viiva2.X = 0;
121            viiva2.Y = 0;
122
123            viiva.Color = Color.Black;
124            viiva2.Color = Color.Black;
125           
126            AddSurface(viiva);
127            AddSurface(viiva2);
128
129        }
130
131        void LisaaReunatKentta2()
132        {
133            PhysicsObject viiva = PhysicsObject.CreateStaticObject(10, 500);
134            viiva.IsVisible = true;
135            AddSurface(viiva);
136
137        }
138
139        void LisaaReunatKentta3()
140        {
141            PhysicsObject viiva = PhysicsObject.CreateStaticObject(10, 500);
142            viiva.IsVisible = true;
143            AddSurface(viiva);
144
145        }
146
147        void LisaaReunatKentta4()
148        {
149            PhysicsObject viiva = PhysicsObject.CreateStaticObject(10, 500);
150            viiva.IsVisible = true;
151            AddSurface(viiva);
152
153        }
154
155        void kiihdyta(Automobile auto)
156        {
157            auto.Accelerate(Time.SinceLastUpdate.TotalSeconds);
158
159            ControllerOne.Vibrate(0.5, 0.5, 0.0, 0.0, 0.1);
160        }
161
162        void jarruta(Automobile auto)
163        {
164            auto.Brake(Time.SinceLastUpdate.TotalSeconds);
165        }
166
167        void kaanny(Automobile auto, Angle kaannos)
168        {
169            auto.Turn(kaannos, Time.SinceLastUpdate.TotalSeconds);
170           
171        }
172    }
173}
Note: See TracBrowser for help on using the repository browser.