source: 2010/23/rikaroih/Autopeli1/Peli.cs @ 658

Revision 658, 6.4 KB checked in by rikaroih, 12 years ago (diff)
Line 
1using System;
2using Jypeli;
3using Jypeli.ScreenObjects;
4using Jypeli.Assets;
5
6namespace Autopeli1
7{
8    public class Peli : TopDownPhysicsGame
9    {
10        SoundEffect taustamusiikki;
11       
12        Automobile auto;
13        Automobile auto2;
14        Automobile auto3;
15
16        PhysicsObject pallo;
17        PhysicsObject pallo2;
18        PhysicsObject pallo3;
19        PhysicsObject pallo4;
20
21        protected override void Begin()
22        {
23            KineticFriction = 10.0; // Asetetaan kitka
24            Camera.ZoomToLevel();
25            aloitaPeliAlusta();
26        }
27
28        void aloitaPeliAlusta()
29        {
30            ClearAll();
31            lisaaAutotJaPallot();
32            lisaaNappaimet();
33            AddText();
34            AddCollisionHandler(auto, collisionOfAuto);
35            AddCollisionHandler(auto2, collisionOfAuto);
36            AddCollisionHandler(auto3, collisionOfAuto);
37            Level.CreateBorders();
38            Level.BackgroundColor = Color.Black;
39            Level.Background.Image = LoadImage("avaruus");
40            taustamusiikki = LoadSoundEffect("taustamusiikki");
41            taustamusiikki.Play();
42
43        }
44
45        void AddText()
46        {
47            TextDisplay MISSION = new TextDisplay();
48            MISSION.TextColor = Color.Red;
49            MISSION.Text = "TEHTÄVÄ:\n" +
50                "VÄISTELE METEORIITTEJÄ TAI NOUTAJA TULEE!!!";
51            MISSION.X = Screen.Center.X + 250;
52            MISSION.Y = Screen.Center.Y - 300;
53
54            Add(MISSION);
55        }
56
57        void lisaaAutotJaPallot()
58        {
59            pallo = new PhysicsObject(150.0, 150.0);
60            pallo.Image = LoadImage("FUUU meteor");
61            pallo.Shape = Shapes.Circle;
62            pallo.Color = Color.Pink;
63            pallo.X = -200.0;
64            pallo.Y = 0.0;
65            pallo.Restitution = 1.0;
66            Vector impulssi = new Vector(-50.0, -50.0);
67            pallo.Hit(impulssi);
68            Add(pallo);
69
70            pallo4 = new PhysicsObject(150.0, 150.0);
71            pallo4.Image = LoadImage("FUUU meteor");
72            pallo4.Shape = Shapes.Circle;
73            pallo4.Color = Color.Brown;
74            pallo4.X = -250.0;
75            pallo4.Y = 100.0;
76            pallo4.Restitution = 1.0;
77            Vector impulssi4 = new Vector(-50.0, -50.0);
78            pallo4.Hit(impulssi);
79            Add(pallo4);
80
81            pallo2 = new PhysicsObject(150.0, 150.0);
82            pallo2.Image = LoadImage("FUUU meteor");
83            pallo2.Shape = Shapes.Circle;
84            pallo2.Color = Color.Violet;
85            pallo2.X = -200.0;
86            pallo2.Y = 200.0;
87            pallo2.Restitution = 1.0;
88            Vector impulssi2 = new Vector(50.0, 50.0);
89            pallo2.Hit(impulssi2);
90            Add(pallo2);
91
92            pallo3 = new PhysicsObject(150.0, 150.0);
93            pallo3.Image = LoadImage("FUUU meteor");
94            pallo3.Shape = Shapes.Circle;
95            pallo3.X = -200.0;
96            pallo3.Color = Color.Red;
97            pallo3.Y = -200.0;
98            pallo3.Restitution = 1.0;
99            Vector impulssi3 = new Vector(50.0, -50.0);
100            pallo3.Hit(impulssi3);
101            Add(pallo3);
102
103            auto2 = new Automobile(80, 80);
104            auto2.Image = LoadImage("UFO4000");
105            auto2.Mass = 2.0;
106            auto2.Color = new Color(192, 192, 255);
107            Add(auto2);
108            auto2.Y = 200;
109            auto2.X = 200;
110
111            auto = new Automobile(80, 80);
112            auto.Image = LoadImage("UFO3000");
113            auto.Mass = 2.0;
114            auto.Color = new Color(192, 192, 255);
115            Add(auto);
116            auto.Y = 50;
117            auto.X = 100;
118
119
120            auto3 = new Automobile(80, 80);
121            auto3.Image = LoadImage("UFO2000");
122            auto3.Mass = 2.0;
123            auto3.Color = new Color(192, 192, 255);
124            Add(auto3);
125            auto3.Y = -100;
126            auto3.X = 100;
127        }
128
129        void lisaaNappaimet()
130        {
131            Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
132            Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
133            Keyboard.Listen(Key.Up, ButtonState.Down, kiihdyta, "Kiihdytä", auto);
134            Keyboard.Listen(Key.Left, ButtonState.Down, kaanny, "Käänny vasemmalle", auto, Angle.Degrees(1));
135            Keyboard.Listen(Key.Right, ButtonState.Down, kaanny, "Käänny oikealle", auto, Angle.Degrees(-1));
136            Keyboard.Listen(Key.Down, ButtonState.Down, jarruta, "Jarruta", auto);
137            Keyboard.Listen(Key.W, ButtonState.Down, kiihdyta, "Kiihdytä", auto2);
138            Keyboard.Listen(Key.A, ButtonState.Down, kaanny, "Käänny vasemmalle", auto2, Angle.Degrees(1));
139            Keyboard.Listen(Key.D, ButtonState.Down, kaanny, "Käänny oikealle", auto2, Angle.Degrees(-1));
140            Keyboard.Listen(Key.S, ButtonState.Down, jarruta, "Jarruta", auto2);
141
142            Keyboard.Listen(Key.Enter, ButtonState.Pressed, aloitaPeliAlusta, "Aloita peli alusta");
143
144            ControllerOne.Listen(Button.RightTrigger, ButtonState.Down, kiihdyta, "kiihdyta", auto3);
145            ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, kaanny, "Käänny vasemmalle", auto3, Angle.Degrees(1));
146            ControllerOne.Listen(Button.DPadRight, ButtonState.Down, kaanny, "Käänny oikealle", auto3, Angle.Degrees(-1));
147            ControllerOne.Listen(Button.LeftTrigger, ButtonState.Down, jarruta, "Jarruta", auto3);
148        }
149
150        void kiihdyta(Automobile auto)
151        {
152            auto.Accelerate(Time.SinceLastUpdate.TotalSeconds);
153        }
154
155        void jarruta(Automobile auto)
156        {
157            auto.Brake(Time.SinceLastUpdate.TotalSeconds);
158        }
159
160        void kaanny(Automobile auto, Angle kaannos)
161        {
162            auto.Turn(kaannos, Time.SinceLastUpdate.TotalSeconds);
163        }
164        void collisionOfAuto(PhysicsObject auto, PhysicsObject target)
165        {
166            if ( target.Equals(pallo) || target.Equals(pallo2) || target.Equals(pallo3) || target.Equals(pallo4))
167            {
168                Explosion rajahdys = new Explosion(200);
169                rajahdys.Position = auto.Position;
170                rajahdys.Force = 100;
171                Add(rajahdys);
172
173                auto.Destroy();
174            }
175        }
176       
177    }   
178}
Note: See TracBrowser for help on using the repository browser.