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

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