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

Revision 635, 6.0 KB checked in by rikaroih, 13 years ago (diff)

KICK ASS GAME

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