source: 2010/27/alelaho/Insane Darkness/Peli.cs @ 1192

Revision 1192, 7.8 KB checked in by alelaho, 13 years ago (diff)

Insane Darknessia päivitetty. Iskukyky ja tausta liitetty

Line 
1using System;
2using Jypeli;
3using Jypeli.ScreenObjects;
4using Jypeli.Assets;
5using Jypeli.Widgets;
6
7
8public class Peli : PhysicsGame
9{
10
11    const double nopeus = 200;
12    const double hyppyVoima = 400;
13
14    const int ruudunLeveys = 50;
15    const int ruudunKorkeus = 50;
16
17    Vector nopeusOikea = new Vector(200, 0);
18    Vector nopeusVasen = new Vector(-200, 0);
19
20    PhysicsObject loota;
21    PhysicsObject ninja;
22
23
24
25    protected override void Begin()
26    {
27       
28        LuoKentta();
29        Peliohjaus();
30        PelaajaYksi();
31        PelaajaKaksi();
32        Gravity = new Vector(0.0, -800.0);
33        Camera.Zoom(0.50);
34        LuoAikaLaskuri();
35        LuoLaskuriP1();
36        LuoLaskuriP2();
37        Camera.StayInLevel = true;
38        Level.Background.Image = LoadImage("Tausta- Todaji");
39    }
40
41    void PelaajaYksi() //Samurain luonti
42    {
43        loota = new PhysicsObject(266.0, 688.0);
44        loota.X = 0.0;
45        loota.Y = 0.0;
46        loota.Image = LoadImage("Animaatio1");
47        loota.KineticFriction = 0.0;
48        loota.CanRotate = false;
49        loota.Mass = 1.0;
50        Add(loota);
51       
52    }
53
54    void PelaajaKaksi() //Ninjan luonti
55    {
56        ninja = new PhysicsObject(214, 652);
57        ninja.X = -100;
58        ninja.Y = 0;
59        ninja.Image = LoadImage("ninja");
60        ninja.KineticFriction = 0.0;
61        ninja.CanRotate = false;
62        Add(ninja);
63    }
64
65    void Peliohjaus() //Pelaajien 1 ja 2 ohjauskomennot!
66    {
67        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa1, null, new Vector(-1000, 0));
68        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa1, null, new Vector(1000, 0));
69        Keyboard.Listen(Key.Up, ButtonState.Pressed, HypytaPelaajaa1, null, new Vector(0, 1500));
70       
71
72
73
74        Keyboard.Listen(Key.A, ButtonState.Down, LiikutaPelaajaa2, null, new Vector(-1000, 0));
75        Keyboard.Listen(Key.D, ButtonState.Down, LiikutaPelaajaa2, null, new Vector(1000, 0));
76        Keyboard.Listen(Key.W, ButtonState.Pressed, LiikutaPelaajaa2, null, new Vector(0, 1500));
77       
78
79
80        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, LiikutaPelaajaa1, null, new Vector(-1000, 0));
81        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, LiikutaPelaajaa1, null, new Vector(1000, 0));
82        ControllerOne.Listen(Button.DPadUp, ButtonState.Pressed, LiikutaPelaajaa1, null, new Vector(0, 1500));
83
84        ControllerOne.Listen(Button.B, ButtonState.Pressed, Pamahdus1, ":)");
85
86        ControllerOne.ListenAnalog(AnalogControl.LeftStick, 0.1, LiikutaPelaajaa, "Liikuta pelaajaa tattia pyörittämällä.");
87
88
89        ControllerTwo.Listen(Button.DPadLeft, ButtonState.Down, LiikutaPelaajaa2, null, new Vector(-1000, 0));
90        ControllerTwo.Listen(Button.DPadRight, ButtonState.Down, LiikutaPelaajaa2, null, new Vector(1000, 0));
91        ControllerTwo.Listen(Button.DPadUp, ButtonState.Pressed, LiikutaPelaajaa2, null, new Vector(0, 1500));
92
93        ControllerTwo.Listen(Button.B, ButtonState.Pressed, Pamahdus2, ":)");
94
95        ControllerTwo.ListenAnalog(AnalogControl.LeftStick, 0.1, LiikutaPelaajaaX2, "Liikuta pelaajaa tattia pyörittämällä.");
96       
97
98    }
99
100    void LiikutaPelaajaa1(Vector vektori)
101    {
102        loota.Push(vektori);
103    }
104
105    void LiikutaPelaajaa2(Vector vektori)
106    {
107        ninja.Push(vektori);
108    }
109
110    void LuoKentta()
111    {
112
113        TileMap ruudut = TileMap.FromFile("Taso.txt");
114        ruudut['='] = LuoPalikka;
115        ruudut.Insert(ruudunLeveys, ruudunKorkeus);
116       
117    }
118
119    PhysicsObject LuoPalikka()
120    {
121        PhysicsObject palikka = PhysicsObject.CreateStaticObject(50.0, 50.0);
122        palikka.Shape = Shapes.Rectangle;
123        palikka.Color = Color.Gray;
124        palikka.IsVisible = false;
125        return palikka;
126    }
127
128
129
130    DoubleMeter alaspainLaskuri;
131
132    void LuoAikaLaskuri()
133    {
134        alaspainLaskuri = new DoubleMeter(120);
135
136        Timer aikaLaskuri = new Timer();
137        aikaLaskuri.Interval = 0.1;
138        aikaLaskuri.Trigger += LaskeAlaspain;
139        Add(aikaLaskuri);
140        aikaLaskuri.Start();
141
142        Label aikaNaytto = new Label();
143        aikaNaytto.TextColor = Color.White;
144        aikaNaytto.DecimalPlaces = 0;
145        aikaNaytto.BindTo(alaspainLaskuri);
146        aikaNaytto.Y = Screen.Top - 100;
147        Add(aikaNaytto);
148    }
149
150    void LaskeAlaspain(Timer timer)
151    {
152       
153        alaspainLaskuri.Value -= 0.1;
154
155        if (alaspainLaskuri.Value <= 0)
156        {
157            MessageDisplay.Add("TIME");
158            timer.Stop();
159
160            if (pisteLaskuri1.Value == pisteLaskuri2.Value)
161        {
162            MessageDisplay.Add("TIE!");
163        }
164
165            if (pisteLaskuri2.Value >= pisteLaskuri1.Value)
166            {
167                MessageDisplay.Add("P1 wins!");
168            }
169
170
171            // täydennä mitä tapahtuu, kun aika loppuu
172
173        }
174
175       
176    }
177
178    void LiikutaPelaajaa(AnalogState tatinTila)
179    {
180        Vector tatinAsento = tatinTila.StateVector;
181        tatinAsento.X = tatinAsento.X * 1000;
182        tatinAsento.Y = tatinAsento.Y * 1000;
183        loota.Push(tatinAsento);
184    }
185
186    void LiikutaPelaajaaX2(AnalogState tatinTila)
187    {
188        Vector tatinAsento = tatinTila.StateVector;
189        tatinAsento.X = tatinAsento.X * 1000;
190        tatinAsento.Y = tatinAsento.Y * 1000;
191        ninja.Push(tatinAsento); 
192    }
193
194    void HypytaPelaajaa1(Vector pomppu1)
195    {
196        if (loota.Y - 400 < Level.Bottom)
197        {
198            loota.Hit(pomppu1);
199        }
200    }
201
202    void HypytaPelaajaaX2(Vector pomppu1)
203    {
204        if (ninja.Y - 318 < Level.Bottom)
205        {
206            ninja.Hit(pomppu1);
207        }
208    }
209
210    void Pamahdus1()
211    {
212        Explosion rajahdys = new Explosion(1);
213        rajahdys.Position = ninja.Position;
214        Add(rajahdys);
215
216        rajahdys.Speed = 500.0;
217        rajahdys.Force = 1;
218        double etaisyys = loota.X - ninja.X;
219        if (etaisyys < 0)
220        {
221            etaisyys = etaisyys * -1;
222        }
223
224        if (etaisyys < 400)
225        {
226            //pisteLaskuri1.Value--;
227            pisteLaskuri1.Value -= 10;
228            pisteLaskuri1.Value = pisteLaskuri1.Value;
229        }
230    }
231
232
233
234    IntMeter pisteLaskuri1;
235
236    void LuoLaskuriP1()
237    {
238        pisteLaskuri1 = new IntMeter(100);
239
240        Label pisteNaytto = new Label();
241        pisteNaytto.X = Screen.Left + 100;
242        pisteNaytto.Y = Screen.Top - 100;
243        pisteNaytto.TextColor = Color.Red;
244
245        pisteNaytto.BindTo(pisteLaskuri1);
246        Add(pisteNaytto);
247
248        if (pisteLaskuri1.Value == 0)
249        {
250            MessageDisplay.Add("Pelaaja 2 voitti!");
251        }
252
253    }
254
255    IntMeter pisteLaskuri2;
256
257    void LuoLaskuriP2()
258    {
259        pisteLaskuri2 = new IntMeter(100);
260
261        Label pisteNaytto = new Label();
262        pisteNaytto.X = Screen.Right - 100;
263        pisteNaytto.Y = Screen.Top - 100;
264        pisteNaytto.TextColor = Color.Red;
265
266        pisteNaytto.BindTo(pisteLaskuri2);
267        Add(pisteNaytto);
268
269        if (pisteLaskuri2.Value == 0)
270        {
271            MessageDisplay.Add("Pelaaja 2 voitti!");
272        }
273    }
274
275
276
277
278        void Pamahdus2()
279    {
280        Explosion rajahdys = new Explosion(1);
281        rajahdys.Position = loota.Position;
282        Add(rajahdys);
283
284        rajahdys.Speed = 500.0;
285        rajahdys.Force = 1;
286        double etaisyys = ninja.X - loota.X;
287        if (etaisyys < 0)
288        {
289            etaisyys = etaisyys * -1;
290        }
291
292        if (etaisyys < 400)
293        {
294            //pisteLaskuri2.Value--;
295            pisteLaskuri2.Value -= 10;
296            pisteLaskuri2.Value = pisteLaskuri2.Value;
297        }
298
299
300
301
302
303
304
305
306
307
308
309
310
311    }
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331   
332 }
333
Note: See TracBrowser for help on using the repository browser.