source: 2013/26/MaxL/Keulaa/Keulaa/Keulaa/Keulaa.cs @ 10335

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