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

Revision 1239, 10.3 KB checked in by alelaho, 10 years ago (diff)

!

Line 
1//Peli By Aleksi Aho 2010
2//Yhden kuvan tussaus by Assistentti Antti!
3
4using System;
5using Jypeli;
6using Jypeli.ScreenObjects;
7using Jypeli.Assets;
8using Jypeli.Widgets;
9 
10
11public class Peli : PhysicsGame
12{
13
14    const double nopeus = 200;
15    const double hyppyVoima = 400;
16
17    const int ruudunLeveys = 50;
18    const int ruudunKorkeus = 50;
19
20    Vector nopeusOikea = new Vector(200, 0);
21    Vector nopeusVasen = new Vector(-200, 0);
22
23    PhysicsObject loota;
24    PhysicsObject ninja;
25
26    double ninjanLeveys = 214;
27    double ninjanLeveysIskussa = 374;
28
29
30
31    protected override void Begin()
32    {
33       
34        LuoKentta();
35        Peliohjaus();
36        PelaajaYksi();
37        PelaajaKaksi();
38        Gravity = new Vector(0.0, -800.0);
39        Camera.ZoomToLevel(0.80);
40       
41        LuoAikaLaskuri();
42        LuoLaskuriP1();
43        LuoLaskuriP2();
44        //Camera.StayInLevel = true;
45        Level.Background.Image = LoadImage("Tausta");
46       
47       
48    }
49
50    void PelaajaYksi() //Samurain luonti
51    {
52        loota = new PhysicsObject(266.0, 688.0);
53        loota.X = 0.0;
54        loota.Y = 0.0;
55        loota.Image = LoadImage("Animaatio1");
56        loota.KineticFriction = 0.0;
57        loota.CanRotate = false;
58        loota.Mass = 1.0;
59        Add(loota);
60       
61    }
62
63    void PelaajaKaksi() //Ninjan luonti
64    {
65        ninja = new PhysicsObject(214, 652);
66        ninja.X = -100;
67        ninja.Y = 0;
68        ninja.Image = LoadImage("ninja");
69        ninja.KineticFriction = 0.0;
70        ninja.CanRotate = false;
71        Add(ninja);
72    }
73
74    void Peliohjaus() //Pelaajien 1 ja 2 ohjauskomennot!
75    {
76        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa1, null, new Vector(-1000, 0));
77        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa1, null, new Vector(1000, 0));
78        Keyboard.Listen(Key.Up, ButtonState.Pressed, HypytaPelaajaa1, null, new Vector(0, 1000));
79        Keyboard.Listen(Key.O, ButtonState.Pressed, Pamahdus1, ":D");
80        Keyboard.Listen(Key.P, ButtonState.Pressed, Pamahdus1, ":D");
81        Keyboard.Listen(Key.Left, ButtonState.Pressed, LootaLiukuuV, ":O");
82        Keyboard.Listen(Key.Left, ButtonState.Released, LiikutaPelaajaa1, null, new Vector(0, 0));
83        Keyboard.Listen(Key.Left, ButtonState.Released, LootaStoppaaV, "D:");
84        Keyboard.Listen(Key.Right, ButtonState.Down, LootaliukuuO, "XD");
85        Keyboard.Listen(Key.Right, ButtonState.Released, LiikutaPelaajaa1, null, new Vector(0, 0));
86        Keyboard.Listen(Key.Right, ButtonState.Released, LootaStoppaaO, "D:");
87        Keyboard.Listen(Key.O, ButtonState.Pressed, LootaHakkaaV, ":D");
88        Keyboard.Listen(Key.O, ButtonState.Released, LootaStoppaaV, ":D");
89        Keyboard.Listen(Key.P, ButtonState.Pressed, LootaHakkaaO, ":D");
90        Keyboard.Listen(Key.P, ButtonState.Released, LootaStoppaaO, ":D");
91       
92
93
94
95        Keyboard.Listen(Key.A, ButtonState.Down, LiikutaPelaajaa2, null, new Vector(-1000, 0));
96        Keyboard.Listen(Key.D, ButtonState.Down, LiikutaPelaajaa2, null, new Vector(1000, 0));
97        Keyboard.Listen(Key.W, ButtonState.Pressed, HypytaPelaajaaX2, null, new Vector(0, 1200));
98        Keyboard.Listen(Key.T, ButtonState.Pressed, Pamahdus2, ":D");
99        Keyboard.Listen(Key.Y, ButtonState.Pressed, Pamahdus2, ":D");
100        Keyboard.Listen(Key.A, ButtonState.Pressed, NinjaLiukuuV, ":O");
101        Keyboard.Listen(Key.A, ButtonState.Released, LiikutaPelaajaa2, null, new Vector(0, 0));
102        Keyboard.Listen(Key.A, ButtonState.Released, NinjaStoppaaV, "D:");
103        Keyboard.Listen(Key.D, ButtonState.Down, NinjaliukuuO, "XD");
104        Keyboard.Listen(Key.D, ButtonState.Released, LiikutaPelaajaa2, null, new Vector(0, 0));
105        Keyboard.Listen(Key.D, ButtonState.Released, NinjaStoppaaO, "D:");
106        Keyboard.Listen(Key.T, ButtonState.Pressed, NinjaHakkaaV, ":D");
107        Keyboard.Listen(Key.T, ButtonState.Released, NinjaStoppaaV, ":D");
108        Keyboard.Listen(Key.Y, ButtonState.Pressed, NinjaHakkaaO, ":D");
109        Keyboard.Listen(Key.Y, ButtonState.Released, NinjaStoppaaO, ":D");
110
111        Keyboard.Listen( Key.Escape, ButtonState.Pressed, Exit, "Poistu" );
112
113
114     
115       
116
117    }
118
119
120
121    void LiikutaPelaajaa1(Vector vektori)
122    {
123        loota.Push(vektori);
124    }
125
126    void LiikutaPelaajaa2(Vector vektori)
127    {
128        ninja.Push(vektori);
129    }
130
131    void LuoKentta()
132    {
133
134        TileMap ruudut = TileMap.FromFile("Taso.txt");
135        ruudut['='] = LuoPalikka;
136        ruudut.Insert(ruudunLeveys, ruudunKorkeus);
137    }
138
139    PhysicsObject LuoPalikka()
140    {
141        PhysicsObject palikka = PhysicsObject.CreateStaticObject(50.0, 50.0);
142        palikka.Shape = Shapes.Rectangle;
143        palikka.Color = Color.Gray;
144        palikka.IsVisible = false;
145        return palikka;
146    }
147
148
149
150    DoubleMeter alaspainLaskuri;
151
152    void LuoAikaLaskuri()
153    {
154        alaspainLaskuri = new DoubleMeter(30);
155
156        Timer aikaLaskuri = new Timer();
157        aikaLaskuri.Interval = 0.1;
158        aikaLaskuri.Trigger += LaskeAlaspain;
159        Add(aikaLaskuri);
160        aikaLaskuri.Start();
161
162        Label aikaNaytto = new Label();
163        aikaNaytto.TextColor = Color.White;
164        aikaNaytto.DecimalPlaces = 0;
165        aikaNaytto.BindTo(alaspainLaskuri);
166        aikaNaytto.Y = Screen.Top - 50;
167        Add(aikaNaytto);
168    }
169
170    void LaskeAlaspain(Timer timer)
171    {
172       
173        alaspainLaskuri.Value -= 0.1;
174
175        if (alaspainLaskuri.Value <= 0)
176        {
177            MessageDisplay.Add("TIME");
178            timer.Stop();
179
180            if (pisteLaskuri1.Value == pisteLaskuri2.Value)
181        {
182            MessageDisplay.Add("TIE!");
183        }
184
185            if (pisteLaskuri2.Value >= pisteLaskuri1.Value)
186            {
187                MessageDisplay.Add("P1 wins!");
188            }
189
190
191            // täydennä mitä tapahtuu, kun aika loppuu
192
193        }
194
195       
196    }
197
198    void LiikutaPelaajaa(AnalogState tatinTila)
199    {
200        Vector tatinAsento = tatinTila.StateVector;
201        tatinAsento.X = tatinAsento.X * 1000;
202        tatinAsento.Y = tatinAsento.Y * 1000;
203        loota.Push(tatinAsento);
204    }
205
206    void LiikutaPelaajaaX2(AnalogState tatinTila)
207    {
208        Vector tatinAsento = tatinTila.StateVector;
209        tatinAsento.X = tatinAsento.X * 1000;
210        tatinAsento.Y = tatinAsento.Y * 1000;
211        ninja.Push(tatinAsento); 
212    }
213
214    void HypytaPelaajaa1(Vector pomppu1)
215    {
216        if (loota.Y - 400 < Level.Bottom)
217        {
218            loota.Hit(pomppu1);
219        }
220    }
221
222    void HypytaPelaajaaX2(Vector pomppu2)
223    {
224        if (ninja.Y - 389 < Level.Bottom)
225        {
226            ninja.Hit(pomppu2);
227        }
228    }
229
230    void Pamahdus1()
231    {
232        Explosion rajahdys = new Explosion(1);
233        rajahdys.Position = ninja.Position;
234        Add(rajahdys);
235
236        rajahdys.Speed = 500.0;
237        rajahdys.Force = 1;
238        double etaisyys = loota.X - ninja.X;
239        if (etaisyys < 0)
240        {
241            etaisyys = etaisyys * -1;
242        }
243
244        if (etaisyys < 400)
245        {
246            //pisteLaskuri1.Value--;
247            pisteLaskuri1.Value -= 10;
248            pisteLaskuri1.Value = pisteLaskuri1.Value;
249        }
250    }
251
252
253
254    IntMeter pisteLaskuri1;
255
256    void LuoLaskuriP1()
257    {
258        pisteLaskuri1 = new IntMeter(500);
259
260        Label pisteNaytto = new Label();
261        pisteNaytto.X = Screen.Left + 100;
262        pisteNaytto.Y = Screen.Top - 100;
263        pisteNaytto.TextColor = Color.Red;
264
265        pisteNaytto.BindTo(pisteLaskuri1);
266        Add(pisteNaytto);
267
268        if (pisteLaskuri1.Value == 0)
269        {
270            MessageDisplay.Add("Pelaaja 2 voitti!");
271        }
272
273    }
274
275    IntMeter pisteLaskuri2;
276
277    void LuoLaskuriP2()
278    {
279        pisteLaskuri2 = new IntMeter(500);
280
281        Label pisteNaytto = new Label();
282        pisteNaytto.X = Screen.Right - 100;
283        pisteNaytto.Y = Screen.Top - 100;
284        pisteNaytto.TextColor = Color.Red;
285
286        pisteNaytto.BindTo(pisteLaskuri2);
287        Add(pisteNaytto);
288
289        if (pisteLaskuri2.Value == 0)
290        {
291            MessageDisplay.Add("Pelaaja 1 voitti!");
292        }
293    }
294
295
296
297
298        void Pamahdus2()
299    {
300        Explosion rajahdys = new Explosion(1);
301        rajahdys.Position = loota.Position;
302        Add(rajahdys);
303
304        rajahdys.Speed = 500.0;
305        rajahdys.Force = 1;
306        double etaisyys = ninja.X - loota.X;
307        if (etaisyys < 0)
308        {
309            etaisyys = etaisyys * -1;
310        }
311
312        if (etaisyys < 400)
313        {
314            //pisteLaskuri2.Value--;
315            pisteLaskuri2.Value -= 10;
316            pisteLaskuri2.Value = pisteLaskuri2.Value;
317        }
318
319
320      }
321       
322    void NinjaLiukuuV()
323        {
324            ninja.Image = LoadImage("NRV");
325            ninja.Width = ninjanLeveys;
326        }
327
328
329    void NinjaStoppaaV()
330    {
331        ninja.Image = LoadImage("N2");
332        ninja.Width = ninjanLeveys;
333
334    }
335
336    void NinjaliukuuO()
337    {
338        ninja.Image = LoadImage("NRO");
339        ninja.Width = ninjanLeveys;
340    }
341
342    void NinjaStoppaaO()
343    {
344        ninja.Image = LoadImage("NINJA");
345        ninja.Width = ninjanLeveys; 
346    }
347
348    void NinjaHakkaaV()
349    {
350        ninja.Image = LoadImage("NAV");
351        ninja.Width = ninjanLeveysIskussa;
352       
353
354    }
355
356    void NinjaHakkaaO()
357    {
358        ninja.Image = LoadImage("NAO");
359        ninja.Width = ninjanLeveysIskussa;
360
361
362    }
363
364
365
366    void LootaLiukuuV()
367    {
368        loota.Image = LoadImage("Animaatio1");
369        loota.Width = ninjanLeveys;
370    }
371
372
373    void LootaStoppaaV()
374    {
375        loota.Image = LoadImage("Animaatio1");
376        loota.Width = ninjanLeveys;
377
378    }
379
380    void LootaliukuuO()
381    {
382        loota.Image = LoadImage("AN2");
383        loota.Width = ninjanLeveys;
384    }
385
386    void LootaStoppaaO()
387    {
388        loota.Image = LoadImage("AN2");
389        loota.Width = ninjanLeveys;
390    }
391
392    void LootaHakkaaV()
393    {
394        loota.Image = LoadImage("LAV");
395        loota.Width = ninjanLeveysIskussa;
396
397
398    }
399
400    void LootaHakkaaO()
401    {
402        loota.Image = LoadImage("LAO");
403        loota.Width = ninjanLeveysIskussa;
404
405
406    }
407
408
409
410
411
412
413
414
415
416    }
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436   
437 
438
Note: See TracBrowser for help on using the repository browser.