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

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