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

Revision 738, 7.2 KB checked in by rikaroih, 12 years ago (diff)

uusi kuva

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