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

Revision 694, 6.7 KB checked in by rikaroih, 12 years ago (diff)

valamis

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