source: 2010/27/alelaho/Ninjutsu - Hutki Ja Mätki/Peli.cs @ 1245

Revision 1245, 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    void LiikutaPelaajaa1(Vector vektori)
120    {
121        loota.Push(vektori);
122    }
123
124    void LiikutaPelaajaa2(Vector vektori)
125    {
126        ninja.Push(vektori);
127    }
128
129    void LuoKentta()
130    {
131
132        TileMap ruudut = TileMap.FromFile("Taso.txt");
133        ruudut['='] = LuoPalikka;
134        ruudut.Insert(ruudunLeveys, ruudunKorkeus);
135    }
136
137    PhysicsObject LuoPalikka()
138    {
139        PhysicsObject palikka = PhysicsObject.CreateStaticObject(50.0, 50.0);
140        palikka.Shape = Shapes.Rectangle;
141        palikka.Color = Color.Gray;
142        palikka.IsVisible = false;
143        return palikka;
144    }
145
146
147
148    DoubleMeter alaspainLaskuri;
149
150    void LuoAikaLaskuri()
151    {
152        alaspainLaskuri = new DoubleMeter(30);
153
154        Timer aikaLaskuri = new Timer();
155        aikaLaskuri.Interval = 0.1;
156        aikaLaskuri.Trigger += LaskeAlaspain;
157        Add(aikaLaskuri);
158        aikaLaskuri.Start();
159
160        Label aikaNaytto = new Label();
161        aikaNaytto.TextColor = Color.White;
162        aikaNaytto.DecimalPlaces = 0;
163        aikaNaytto.BindTo(alaspainLaskuri);
164        aikaNaytto.Y = Screen.Top - 50;
165        Add(aikaNaytto);
166    }
167
168    void LaskeAlaspain(Timer timer)
169    {
170       
171        alaspainLaskuri.Value -= 0.1;
172
173        if (alaspainLaskuri.Value <= 0)
174        {
175            MessageDisplay.Add("TIME");
176            timer.Stop();
177
178            if (pisteLaskuri1.Value == pisteLaskuri2.Value)
179        {
180            MessageDisplay.Add("TIE!");
181        }
182
183            if (pisteLaskuri2.Value >= pisteLaskuri1.Value)
184            {
185                MessageDisplay.Add("P1 wins!");
186            }
187
188
189            // täydennä mitä tapahtuu, kun aika loppuu
190
191        }
192
193       
194    }
195
196    void LiikutaPelaajaa(AnalogState tatinTila)
197    {
198        Vector tatinAsento = tatinTila.StateVector;
199        tatinAsento.X = tatinAsento.X * 1000;
200        tatinAsento.Y = tatinAsento.Y * 1000;
201        loota.Push(tatinAsento);
202    }
203
204    void LiikutaPelaajaaX2(AnalogState tatinTila)
205    {
206        Vector tatinAsento = tatinTila.StateVector;
207        tatinAsento.X = tatinAsento.X * 1000;
208        tatinAsento.Y = tatinAsento.Y * 1000;
209        ninja.Push(tatinAsento); 
210    }
211
212    void HypytaPelaajaa1(Vector pomppu1)
213    {
214        if (loota.Y - 400 < Level.Bottom)
215        {
216            loota.Hit(pomppu1);
217        }
218    }
219
220    void HypytaPelaajaaX2(Vector pomppu2)
221    {
222        if (ninja.Y - 389 < Level.Bottom)
223        {
224            ninja.Hit(pomppu2);
225        }
226    }
227
228    void Pamahdus1()
229    {
230        Explosion rajahdys = new Explosion(1);
231        rajahdys.Position = ninja.Position;
232        Add(rajahdys);
233
234        rajahdys.Speed = 500.0;
235        rajahdys.Force = 1;
236        double etaisyys = loota.X - ninja.X;
237        if (etaisyys < 0)
238        {
239            etaisyys = etaisyys * -1;
240        }
241
242        if (etaisyys < 400)
243        {
244            //pisteLaskuri1.Value--;
245            pisteLaskuri1.Value -= 10;
246            pisteLaskuri1.Value = pisteLaskuri1.Value;
247        }
248    }
249
250
251
252    IntMeter pisteLaskuri1;
253
254    void LuoLaskuriP1()
255    {
256        pisteLaskuri1 = new IntMeter(500);
257
258        Label pisteNaytto = new Label();
259        pisteNaytto.X = Screen.Left + 100;
260        pisteNaytto.Y = Screen.Top - 100;
261        pisteNaytto.TextColor = Color.Red;
262
263        pisteNaytto.BindTo(pisteLaskuri1);
264        Add(pisteNaytto);
265
266        if (pisteLaskuri1.Value == 0)
267        {
268            MessageDisplay.Add("Pelaaja 2 voitti!");
269        }
270
271    }
272
273    IntMeter pisteLaskuri2;
274
275    void LuoLaskuriP2()
276    {
277        pisteLaskuri2 = new IntMeter(500);
278
279        Label pisteNaytto = new Label();
280        pisteNaytto.X = Screen.Right - 100;
281        pisteNaytto.Y = Screen.Top - 100;
282        pisteNaytto.TextColor = Color.Red;
283
284        pisteNaytto.BindTo(pisteLaskuri2);
285        Add(pisteNaytto);
286
287        if (pisteLaskuri2.Value == 0)
288        {
289            MessageDisplay.Add("Pelaaja 1 voitti!");
290        }
291    }
292
293
294
295
296        void Pamahdus2()
297    {
298        Explosion rajahdys = new Explosion(1);
299        rajahdys.Position = loota.Position;
300        Add(rajahdys);
301
302        rajahdys.Speed = 500.0;
303        rajahdys.Force = 1;
304        double etaisyys = ninja.X - loota.X;
305        if (etaisyys < 0)
306        {
307            etaisyys = etaisyys * -1;
308        }
309
310        if (etaisyys < 400)
311        {
312            //pisteLaskuri2.Value--;
313            pisteLaskuri2.Value -= 10;
314            pisteLaskuri2.Value = pisteLaskuri2.Value;
315        }
316
317
318      }
319       
320    void NinjaLiukuuV()
321        {
322            ninja.Image = LoadImage("NRV");
323            ninja.Width = ninjanLeveys;
324        }
325
326
327    void NinjaStoppaaV()
328    {
329        ninja.Image = LoadImage("N2");
330        ninja.Width = ninjanLeveys;
331
332    }
333
334    void NinjaliukuuO()
335    {
336        ninja.Image = LoadImage("NRO");
337        ninja.Width = ninjanLeveys;
338    }
339
340    void NinjaStoppaaO()
341    {
342        ninja.Image = LoadImage("NINJA");
343        ninja.Width = ninjanLeveys; 
344    }
345
346    void NinjaHakkaaV()
347    {
348        ninja.Image = LoadImage("NAV");
349        ninja.Width = ninjanLeveysIskussa;
350       
351
352    }
353
354    void NinjaHakkaaO()
355    {
356        ninja.Image = LoadImage("NAO");
357        ninja.Width = ninjanLeveysIskussa;
358
359
360    }
361
362
363
364    void LootaLiukuuV()
365    {
366        loota.Image = LoadImage("Animaatio1");
367        loota.Width = ninjanLeveys;
368    }
369
370
371    void LootaStoppaaV()
372    {
373        loota.Image = LoadImage("Animaatio1");
374        loota.Width = ninjanLeveys;
375
376    }
377
378    void LootaliukuuO()
379    {
380        loota.Image = LoadImage("AN2");
381        loota.Width = ninjanLeveys;
382    }
383
384    void LootaStoppaaO()
385    {
386        loota.Image = LoadImage("AN2");
387        loota.Width = ninjanLeveys;
388    }
389
390    void LootaHakkaaV()
391    {
392        loota.Image = LoadImage("LAV");
393        loota.Width = ninjanLeveysIskussa;
394
395
396    }
397
398    void LootaHakkaaO()
399    {
400        loota.Image = LoadImage("LAO");
401        loota.Width = ninjanLeveysIskussa;
402
403
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
Note: See TracBrowser for help on using the repository browser.