source: 2017/24/EmiliaM/Little_miner1.cs @ 8644

Revision 8599, 7.3 KB checked in by npo17_4, 2 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 Testi_Little_miner : PhysicsGame
10{
11   
12    PhysicsObject hakku;
13    Image miner = LoadImage("miner");
14    Image kseina = LoadImage("kseina");
15
16    private double liikkumisnopeus = 300;
17    PhysicsObject pelaaja;
18    public override void Begin()
19    {
20        LuoKentta();
21        LuoHakku(pelaaja.X, pelaaja.Y + -50.0);
22       
23       
24        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, null, pelaaja, new Vector(-liikkumisnopeus, 0));
25        Keyboard.Listen(Key.Left, ButtonState.Released, Liikuta, null, pelaaja, Vector.Zero);
26        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, null, pelaaja, new Vector(liikkumisnopeus, 0));
27        Keyboard.Listen(Key.Right, ButtonState.Released, Liikuta, null, pelaaja, Vector.Zero);
28        Keyboard.Listen(Key.Down, ButtonState.Down, Liikuta, null, pelaaja, new Vector(0, -liikkumisnopeus));
29        Keyboard.Listen(Key.Down, ButtonState.Released, Liikuta, null, pelaaja, Vector.Zero);
30        Keyboard.Listen(Key.Up, ButtonState.Down, Liikuta, null, pelaaja, new Vector(0, liikkumisnopeus));
31        Keyboard.Listen(Key.Up, ButtonState.Released, Liikuta, null, pelaaja, Vector.Zero);
32
33        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
34        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
35    }
36
37    void LuoHakku(double x, double y)
38    {
39        hakku = new PhysicsObject(50.0, 50.0);
40        hakku.X = x;
41        hakku.Y = y;
42        hakku.Shape = Shape.Rectangle;
43        hakku.Color = Color.OrangeRed;
44        hakku.Tag = "hakku";
45        hakku.Restitution = 0.0;
46        hakku.CanRotate = false;
47        Add(hakku);
48       
49        AxleJoint liitos = new AxleJoint(hakku, pelaaja);
50        Add(liitos);
51    }
52
53
54    void Liikuta(PhysicsObject pelaaja, Vector suunta)
55    {
56        pelaaja.Velocity = suunta;
57    }
58
59    void LuoKentta()
60    {
61        TileMap ruudut = TileMap.FromLevelAsset("miner_maa1");
62
63        Level.Background.Color = Color.Charcoal;
64
65        ruudut.SetTileMethod('H', LuoSeina);
66        ruudut.SetTileMethod('K', LuoPalkki);
67        ruudut.SetTileMethod('h', LuoKseina);
68        ruudut.SetTileMethod('R', LuoKivi);
69        ruudut.SetTileMethod('V', LuoVihu);
70        ruudut.SetTileMethod('I', LuoIlkio);
71        ruudut.SetTileMethod('E', LuoEste);
72        ruudut.SetTileMethod('S', LuoSmaragdi);
73        ruudut.SetTileMethod('D', LuoTimantti);
74        ruudut.SetTileMethod('B', LuoIsokivi);
75        ruudut.SetTileMethod('a', LuoSanky);
76        ruudut.SetTileMethod('c', LuoArkku);
77        ruudut.SetTileMethod('P', LuoPelaaja);
78        ruudut.Execute(50, 50);
79    }
80
81    void LuoPelaaja(Vector paikka, double leveys, double korkeus)
82    {
83        pelaaja = new PhysicsObject(leveys, korkeus);
84        pelaaja.Shape = Shape.Circle;
85        pelaaja.Position = paikka;
86        pelaaja.Mass = 100.0;
87        pelaaja.CanRotate = false;
88
89        Camera.Follow(pelaaja);
90        pelaaja.Image = miner;
91        pelaaja.Restitution = 0.0;
92        Add(pelaaja);
93    }
94
95    void LuoSeina(Vector paikka, double leveys, double korkeus)
96    {
97        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
98        palikka.Position = paikka;
99        palikka.Shape = Shape.Rectangle;
100        palikka.Color = Color.Black;
101        palikka.Restitution = 0.0;
102        Add(palikka);
103    }
104
105    void LuoPalkki(Vector paikka, double leveys, double korkeus)
106    {
107        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
108        palikka.Position = paikka;
109        palikka.Shape = Shape.Rectangle;
110        palikka.Color = Color.Brown;
111        palikka.Restitution = 0.0;
112        Add(palikka);
113    }
114
115    void LuoKseina(Vector paikka, double leveys, double korkeus)
116    {
117        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
118        palikka.Position = paikka;
119        palikka.Shape = Shape.Rectangle;
120       
121        palikka.Restitution = 0.0;
122        Add(palikka);
123    }
124    void LuoKivi(Vector paikka, double leveys, double korkeus)
125    {
126        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
127        palikka.Position = paikka;
128        palikka.Shape = Shape.Rectangle;
129        palikka.Color = Color.LightGray;
130        AddCollisionHandler(palikka, "hakku", KiviTuhoutuu);
131        palikka.Restitution = 0.0;
132        Add(palikka);
133    }
134
135    void KiviTuhoutuu(PhysicsObject palikka, PhysicsObject hakku)
136    {
137        palikka.Destroy();
138    }
139
140    void LuoVihu(Vector paikka, double leveys, double korkeus)
141    {
142        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
143        palikka.Position = paikka;
144        palikka.Shape = Shape.Rectangle;
145        palikka.Color = Color.Red;
146        palikka.Restitution = 0.0;
147        Add(palikka);
148    }
149
150    void LuoIlkio(Vector paikka, double leveys, double korkeus)
151    {
152        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
153        palikka.Position = paikka;
154        palikka.Shape = Shape.Rectangle;
155        palikka.Color = Color.Green;
156        palikka.Restitution = 0.0;
157        Add(palikka);
158    }
159
160    void LuoEste(Vector paikka, double leveys, double korkeus)
161    {
162        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
163        palikka.Position = paikka;
164        palikka.Shape = Shape.Rectangle;
165        palikka.Color = Color.DarkJungleGreen;
166        palikka.Restitution = 0.0;
167        Add(palikka);
168    }
169
170    void LuoSmaragdi(Vector paikka, double leveys, double korkeus)
171    {
172        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
173        palikka.Position = paikka;
174        palikka.Shape = Shape.Rectangle;
175        palikka.Color = Color.JungleGreen;
176        palikka.Restitution = 0.0;
177        Add(palikka);
178    }
179
180    void LuoTimantti(Vector paikka, double leveys, double korkeus)
181    {
182        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
183        palikka.Position = paikka;
184        palikka.Shape = Shape.Rectangle;
185        palikka.Color = Color.Blue;
186        palikka.Restitution = 0.0;
187        Add(palikka);
188    }
189
190    void LuoIsokivi(Vector paikka, double leveys, double korkeus)
191    {
192        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys + 40.0, korkeus +40.0);
193        palikka.Position = paikka;
194        palikka.Shape = Shape.Rectangle;
195        palikka.Color = Color.BlueGray;
196        palikka.Restitution = 0.0;
197        Add(palikka);
198    }
199
200    void LuoSanky(Vector paikka, double leveys, double korkeus)
201    {
202        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
203        palikka.Position = paikka;
204        palikka.Shape = Shape.Rectangle;
205        palikka.Color = Color.BloodRed;
206        palikka.Restitution = 0.0;
207        Add(palikka);
208    }
209
210    void LuoArkku(Vector paikka, double leveys, double korkeus)
211    {
212        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
213        palikka.Position = paikka;
214        palikka.Shape = Shape.Rectangle;
215        palikka.Color = Color.DarkBrown;
216        palikka.Restitution = 0.0;
217        Add(palikka);
218    }
219}
Note: See TracBrowser for help on using the repository browser.