source: 2013/26/MaxL/Keulaa2/Keulaa/Keulaa/Keulaa.cs @ 4254

Revision 4254, 7.7 KB checked in by mitaivas, 10 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Keulaa : PhysicsGame
10{
11    Image moponKuva = LoadImage("RM125");
12    Image rengaskuva = LoadImage("rengas");
13    Image trengaskuva = LoadImage("trengas");
14    Image moponMuoto = LoadImage("Frame");
15    Image moponRunko = LoadImage("Frame2");
16    Image hypynKuva = LoadImage("Hyppy");
17    Image pilvenKuva = LoadImage("KeulaPilvet");
18    Image taustaKuva = LoadImage("KeulaTausta");
19    Image kyparanKuva = LoadImage("Kypara");
20
21    //PhysicsObject Vartalo;
22    PhysicsObject mopo = new PhysicsObject(250, 160);
23    PhysicsObject Takarengas = new PhysicsObject(77, 77, Shape.Circle);
24    PhysicsObject Eturengas = new PhysicsObject(80, 80, Shape.Circle);
25    PhysicsObject Kasi = new PhysicsObject(10, 42);
26    PhysicsObject Kasi2 = new PhysicsObject(44, 10);
27    PhysicsObject Vartalo = new PhysicsObject(30, 80);
28    PhysicsObject Kypara = new PhysicsObject(50, 50);
29    PhysicsObject Palikka = new PhysicsObject(10, 10);
30
31    Vector eteen = new Vector(4500, 0);
32    Vector taakse = new Vector(-5500, 0);
33    double kaasu2 = -50;
34   
35
36   
37   
38    public override void Begin()
39    {
40       
41
42        MultiSelectWindow alkuValikko = new MultiSelectWindow("Mopo peli", "Aloita", "Lopeta");
43
44        LuoOhjaimet();
45        LuoKentta();
46 
47        GameObject tausta = new GameObject(Screen.Width, Screen.Height);
48        tausta.Image = taustaKuva;
49        Add(tausta, -3);
50        Layers[-3].RelativeTransition = new Vector(0.5, 0.5);
51        GameObject tausta2 = new GameObject(Screen.Width, Screen.Height);
52        tausta2.Image = taustaKuva;
53        Add(tausta2, -3);
54        tausta2.X = tausta.Right;
55        GameObject pilvet = new GameObject(Screen.Width, Screen.Height);
56        pilvet.Image = pilvenKuva;
57        Add(tausta, -2);
58        Layers[-2].RelativeTransition = new Vector(0.2, 0.1);
59
60        Gravity = new Vector(0, -1000);
61        Camera.Follow(mopo);
62       
63       
64
65    }
66
67    void Kiihdyta(double kiihtyvyys)
68    {
69        double kulmakiiht = kiihtyvyys * Takarengas.Width / 2;
70        double hitaus = 0.6*Takarengas.MomentOfInertia;
71        double vaanto = kulmakiiht * hitaus;
72        double vaantoPerPyora = vaanto / 2;
73
74        Takarengas.ApplyTorque(vaantoPerPyora);
75    }
76
77    void Nojaus(PhysicsObject Helmet, Vector k)
78    {
79        Helmet.Push(k);
80    }
81 
82    void LuoMopo(Vector paikka, double leveys, double korkeus)
83    {
84       
85        mopo.Shape = Shape.FromImage(moponRunko);
86        //mopo.MomentOfInertia = 500;
87        mopo.Mass = 8;
88        mopo.CollisionIgnoreGroup = 1;
89        //mopo.CollisionIgnoreGroup = 2;
90        //mopo.AngularDamping = 0.9;
91        mopo.Image = moponMuoto;
92        Add(mopo, 0);
93       
94        Eturengas.CollisionIgnoreGroup = 1;
95        Eturengas.Image = rengaskuva;
96        Eturengas.X = mopo.X + 75;
97        Eturengas.Y = mopo.Y - 30;
98        Eturengas.Color = Color.Transparent;
99        Eturengas.Mass = 3;
100        Eturengas.Restitution = 0.0;
101        Add(Eturengas, -1);
102        AxleJoint Etuliitos = new AxleJoint(mopo, Eturengas);
103        Add(Etuliitos);
104        Etuliitos.Softness = 1;
105        //PhysicsObject Takarengas = new PhysicsObject(75, 75, Shape.Circle);
106        Takarengas.CollisionIgnoreGroup = 1;
107        Takarengas.AngularDamping = 0.7;
108        Takarengas.KineticFriction = 1;
109        Takarengas.Image = trengaskuva;
110        Takarengas.X = mopo.X - 80;
111        Takarengas.Y = mopo.Y - 30;
112        Takarengas.Color = Color.Transparent;
113        Takarengas.Mass = 5;
114        Takarengas.Restitution = 0.0;
115        //Takarengas.KineticFriction = 1;
116        Add(Takarengas, -1);
117        AxleJoint Takaliitos = new AxleJoint(mopo, Takarengas);
118        Takaliitos.Softness = 0.5;
119        Add(Takaliitos);
120
121        LuoAjaja();
122        //Takarengas.ApplyTorque(200);
123    }
124
125    void LuoAjaja()
126    {
127        Vartalo.CollisionIgnoreGroup = 1;
128        Vartalo.Color = Color.Yellow;
129        Vartalo.Y = mopo.Top-10;
130        Vartalo.X = -30;
131        AxleJoint VartaloLiitos = new AxleJoint(mopo, Vartalo, new Vector(-30, Vartalo.Bottom));
132        Vartalo.Mass = 2;
133
134        Kasi.CollisionIgnoreGroup = 1;
135        Kasi.Color = Color.Gray;
136        Kasi.Y = Vartalo.Top - 22;
137        Kasi.X = Vartalo.Left + 15;
138        AxleJoint KasiLiitos = new AxleJoint(Vartalo, Kasi, new Vector(Vartalo.Position.X, Kasi.Top));
139
140        Kasi2.CollisionIgnoreGroup = 1;
141        Kasi2.Color = Color.DarkGray;
142        Kasi2.Y = Kasi.Bottom + 1;
143        Kasi2.X = Kasi.Left + 22;
144        AxleJoint Kasi2Liitos = new AxleJoint(Kasi, Kasi2, new Vector(Kasi2.Left - 1, Kasi2.Top - 5));
145        AxleJoint Ohjaus = new AxleJoint(mopo, Kasi2, new Vector(Kasi2.Right, Kasi2.Top - 5));
146
147        Kypara.CollisionIgnoreGroup = 1;
148        Kypara.Y = Vartalo.Top+10;
149        Kypara.X = Vartalo.Position.X;
150        AxleJoint KyparaLiitos = new AxleJoint(Vartalo, Kypara, new Vector(Vartalo.Position.X, Kypara.Bottom));
151        Kypara.CanRotate = false;
152        Kypara.Image = kyparanKuva;
153        Kypara.Shape = Shape.FromImage(kyparanKuva);
154
155        Palikka.Mass = 1;
156        Palikka.Y = Kasi2.Position.Y;
157        Palikka.X = Eturengas.Left;
158        AxleJoint PalikkaLiitos = new AxleJoint(mopo, Palikka);
159
160        Add(Palikka);
161        Add(PalikkaLiitos);
162        Add(Kypara, 2);
163        Add(KyparaLiitos);
164        Add(Kasi2, 3);
165        Add(Kasi2Liitos);
166        Add(Ohjaus);
167        Add(Kasi, 3);
168        Add(KasiLiitos);
169        Add(Vartalo, 1);
170        Add(VartaloLiitos);
171
172    }
173
174    void LuoOhjaimet()
175    {
176        //Keyboard.Listen(Key.Up, ButtonState.Down, Kaasu, "Braapp!", mopo, kaasu);
177        Keyboard.Listen(Key.Up, ButtonState.Down, Kiihdyta, "Kaasu!", kaasu2);
178        Keyboard.Listen(Key.Right, ButtonState.Down, Nojaus, "Nojaa eteen", Vartalo, eteen);
179        Keyboard.Listen(Key.Left, ButtonState.Down, Nojaus, "Nojaa taakse", Vartalo, taakse);
180
181        Keyboard.Listen(Key.Down, ButtonState.Pressed, Jarru, "Jarru!", Eturengas, 0.2);
182        Keyboard.Listen(Key.Down, ButtonState.Released, JarruPois, "Jarru!", Eturengas);
183        Keyboard.Listen(Key.Down, ButtonState.Pressed, Jarru, "Jarru!", Takarengas, 0.6);
184        Keyboard.Listen(Key.Down, ButtonState.Released, JarruPois, "Jarru!", Eturengas);
185
186        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Lopeta");
187    }
188
189    void Jarru(PhysicsObject rengas, double jarru)
190    {
191        rengas.AngularDamping = jarru;
192    }
193    void JarruPois(PhysicsObject rengas)
194    {
195        rengas.AngularDamping = 1;
196    }
197
198    void LuoTaso(Vector paikka, double leveys, double korkeus)
199    {
200        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
201        taso.Position = paikka;
202        //taso.Image = groundImage;
203        //taso.CollisionIgnoreGroup = 1;
204        Add(taso);
205        taso.KineticFriction = 1;
206        PhysicsObject maa = Level.CreateBottomBorder(0.2, true);
207        maa.KineticFriction = 1;
208    }
209
210    void LuoKentta()
211    {
212        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("Kentta");
213
214        ruudut.SetTileMethod("FFD800", LuoMopo);
215        ruudut.SetTileMethod(Color.Black, LuoTaso);
216        ruudut.SetTileMethod("FF0000", LuoHyppy);
217
218        ruudut.Execute(140, 140);
219    }
220
221    void LuoHyppy(Vector paikka, double leveys, double korkeus)
222    {
223        PhysicsObject Hyppy = PhysicsObject.CreateStaticObject(leveys*10, korkeus);
224        Hyppy.Position = paikka;
225        Hyppy.Shape = Shape.FromImage (hypynKuva);
226        Hyppy.Image = hypynKuva;
227        //Hyppy.Tag = "asdasd";
228        Hyppy.Restitution = 0;
229        Add(Hyppy, 1);
230    }
231}
Note: See TracBrowser for help on using the repository browser.