source: 2015/26/Tuisku/Volleyball champ v2.0/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1.cs @ 6462

Revision 6462, 13.8 KB checked in by anmurtok, 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 FysiikkaPeli1 : PhysicsGame
10{
11   
12   
13   
14   
15   
16   
17   
18   
19
20   
21
22   
23
24
25
26    Image tausta = LoadImage("ergo2");
27    Image pallon = LoadImage("pallo");
28    Image biichi = LoadImage("kuva");
29    Image net = LoadImage("net1");
30    Image net2 = LoadImage("net2");
31    Image net3 = LoadImage("net3");
32    Image omapallol = LoadImage("omapallo");
33    Image pallok = LoadImage("pallo2");
34    Image pallo4 = LoadImage("tulevaisuuspallo");
35    Image käsi1 = LoadImage("käsi1");
36    Image käsi2 = LoadImage("käsi2");
37    Image käsi01 = LoadImage("käsi01");
38    Image käsi02 = LoadImage("käsi02");
39    Image tausta1 = LoadImage("tausta");
40    Image pv1 = LoadImage("p1v");
41    Image pv2 = LoadImage("p2v");
42    Image pallob = LoadImage("pallob");
43    Image hiekka = LoadImage("hiekka");
44    Image lattia = LoadImage("lattia");
45    Image tule = LoadImage("screen");
46    Image tulek = LoadImage("tulevaisuuskentta");
47    SoundEffect pilli = LoadSoundEffect("pilli");
48    SoundEffect pilli1 = LoadSoundEffect("pilli1");
49    SoundEffect a = LoadSoundEffect("a");
50   
51   
52    PhysicsObject maila1;
53    PhysicsObject maila2;
54    PhysicsObject pallo;
55    PhysicsObject pallo2; 
56    PhysicsObject oikea;
57    PhysicsObject vasen;
58    PhysicsObject kenttä;
59    PhysicsObject verkko;
60    PhysicsObject vr;
61    PhysicsObject or;
62    PhysicsObject yr;
63    IntMeter piste1;
64    IntMeter piste2;
65    MultiSelectWindow alkuValikko;
66
67    Label pisteNaytto;
68    Label pisteNaytto2;
69
70    Vector nopeusYlos = new Vector(200, 0);
71    Vector nopeusAlas = new Vector(-200, 0);
72
73
74
75    public override void Begin()
76    {
77        Level.Background.Image = tausta1;
78        Level.Background.Color = Color.Black;
79
80        Timer.SingleShot(10, alku);
81       
82    }
83
84       void alku()
85       {
86
87           MessageDisplay.Add("Made by Tuisku");
88
89
90           LuoKenttä();
91           LuoPallo();
92           LuoOikea();
93           laskuri();
94           laskuri2();
95           asetanapit();
96           LuoVasen();
97           valikko();
98           Add(pallo);
99           Add(kenttä);
100           Add(verkko);
101           Add(maila1);
102           Add(maila2);
103           MainMenu();
104           Level.Background.Image = tausta1;
105
106
107
108           IsPaused = true;
109
110
111
112           Gravity = new Vector(0.0, -700.0);
113       }
114 
115
116
117    void LuoKenttä()
118    {
119       verkko = PhysicsObject.CreateStaticObject(30.0, 500.0);
120       verkko.Image = net;
121       verkko.IsVisible = false;
122       
123     
124     
125
126     
127       
128       
129        verkko.Y = -200.0;
130        verkko.X = 19;
131
132        kenttä = PhysicsObject.CreateStaticObject(1300, 600);
133       
134        kenttä.Y = -700;
135        kenttä.Color = Color.Black;
136        kenttä.IsVisible = false;
137
138        yr = PhysicsObject.CreateStaticObject(2000, 9999);
139        Add(yr);
140        yr.IsVisible = false;
141        yr.Y = 5400;
142        yr.Restitution = 0.0;
143
144        or = PhysicsObject.CreateStaticObject(2000, 9999);
145        Add(or);
146        or.IsVisible = false;
147        or.X = 1600;
148        or.Restitution = 0.0;
149
150        vr = PhysicsObject.CreateStaticObject(2000, 9999);
151        Add(vr); 
152        vr.IsVisible = false;
153        vr.X = -1600;
154        vr.Restitution = 0.0;
155
156       
157
158
159
160       
161
162               
163        // Camera.ZoomToLevel();
164        Level.Background.Color = Color.Black;
165        kenttä.Restitution = 1.0;
166       
167       
168
169 
170        maila1 = PhysicsObject.CreateStaticObject(käsi1);
171        maila1.CanRotate = true;
172       
173        maila1.IgnoresGravity = true;
174        //maila1.Shape = Shape.FromImage(käsi1);
175        maila1.X = Level.Left + 20.0;
176        maila1.Y = 0.0;
177        maila1.Restitution = 1.0;
178        maila1.Angle = Angle.FromDegrees(330);
179       
180        //maila1.Color = Color.Beige;
181
182        maila2 = PhysicsObject.CreateStaticObject(käsi2);
183        maila2.CanRotate = true;
184       
185         
186        maila2.Shape = Shape.Rectangle;
187        maila2.X = Level.Right + 20.0;
188        maila2.Y = 0.0;
189        maila2.Restitution = 1.0;
190        maila2.Angle = Angle.FromDegrees(30);
191       
192        maila2.Color = Color.Beige;
193        Level.CreateBottomBorder(1.0, false);
194
195
196
197
198
199
200
201
202    }
203
204
205
206    void LuoPallo()
207    {
208        pallo = new PhysicsObject(20, 20);
209        pallo.Shape = Shape.Circle;
210        pallo.Color = Color.Yellow;
211        pallo.X = 480;
212        pallo.Y = 100;
213       // Vector impulssi = new Vector(-20.0, 300.0);
214        //pallo.Hit(impulssi);
215        pallo.Restitution = 1.0;
216        AddCollisionHandler(pallo, "oikea", Lp1 ); 
217        AddCollisionHandler(pallo, "vasen", Lp2); 
218        pallo.Shape = Shape.Circle;
219        Add(pallo);
220
221    }
222   
223   
224
225
226
227
228    void asetanapit()
229    {   // pelaaja 1
230        Keyboard.Listen(Key.D, ButtonState.Down, liikuOikealle1, "pelaaja1 liiku oikealle");
231        Keyboard.Listen(Key.D, ButtonState.Released, pysähdy, "");
232        Keyboard.Listen(Key.A, ButtonState.Down, liikuVasemalle1, "pelaaja1 liiku vasemmalle");
233        Keyboard.Listen(Key.A, ButtonState.Released, pysähdy, "");
234        Keyboard.Listen(Key.W, ButtonState.Down, liikuYlös1, "pelaaja1 liiku ylös");
235        Keyboard.Listen(Key.W, ButtonState.Released, pysähdy, "");
236        Keyboard.Listen(Key.S, ButtonState.Down, liikuAlas1, "pelaaja1 liiku alas");
237        Keyboard.Listen(Key.S, ButtonState.Released, pysähdy, "");
238        Keyboard.Listen(Key.Space, ButtonState.Down, hyökkäys1, "pelaaja1 torju");
239        Keyboard.Listen(Key.Space, ButtonState.Released, nosto1, "");
240       
241
242       
243       
244
245        //pelaaja 2
246        Keyboard.Listen(Key.NumPad6, ButtonState.Down, liikuOikealle2, "pelaaja2 liiku oikealle");
247        Keyboard.Listen(Key.NumPad6, ButtonState.Released, pysähdy, "p");
248        Keyboard.Listen(Key.NumPad4, ButtonState.Down, liikuVasemalle2, "pelaaja2 liiku vasemalle");
249        Keyboard.Listen(Key.NumPad4, ButtonState.Released, pysähdy, "");
250        Keyboard.Listen(Key.NumPad8, ButtonState.Down, liikuYlös2, "pelaaja2 liiku ylös");
251        Keyboard.Listen(Key.NumPad8, ButtonState.Released, pysähdy, "");
252        Keyboard.Listen(Key.NumPad5, ButtonState.Down, liikuAlas2, "pelaaja2 liiku alas");
253        Keyboard.Listen(Key.NumPad5, ButtonState.Released, pysähdy, "");
254        Keyboard.Listen(Key.Enter, ButtonState.Pressed, hyökkäys2, "pelaaja2 torju");
255        Keyboard.Listen(Key.Enter, ButtonState.Released, nosto2, "");
256
257
258
259
260        //yleiset
261        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "näytäohje");
262        //Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
263        Keyboard.Listen(Key.M, ButtonState.Pressed, MainMenu, "Päävalikko");
264
265    }
266
267
268    void MainMenu()
269    {
270        Add(alkuValikko);
271        IsPaused = true;
272    }
273
274    void nosto1()
275    {
276        maila1.Angle = Angle.FromDegrees(330);
277        maila1.Image = käsi1;
278    }
279
280    void nosto2()
281    {
282        maila2.Angle = Angle.FromDegrees(30);
283        maila2.Image = käsi2;
284    }
285
286    void hyökkäys1()
287    {
288        maila1.Angle = Angle.FromDegrees(60);
289        maila1.Image = käsi01; 
290    }
291
292    void hyökkäys2()
293    {
294         maila2.Angle = Angle.FromDegrees(320);
295         maila2.Image = käsi02;
296    }
297   
298
299
300    void beachkenttä()
301    {
302        Level.Background.Image = biichi;
303        kenttä.Color = Color.Beige;
304        kenttä.Image = hiekka;
305        pallo.Image = pallob;
306        maila2.Image = käsi1;
307        verkko.Image = net2;
308        verkko.IsVisible = true;
309        kenttä.IsVisible = true;
310        MediaPlayer.Play("fm");
311       
312        IsPaused = false;
313       
314       
315       
316       
317       
318    }
319    void valikko()
320{
321        alkuValikko = new MultiSelectWindow("Volleyball Champ v2.0",
322    "close", "Stadion", "Beach","future","reset score","reset", "Exit");
323        Add(alkuValikko);
324        alkuValikko.AddItemHandler(0, close);
325        alkuValikko.AddItemHandler(1, stadionkenttä);
326        alkuValikko.AddItemHandler(2, beachkenttä);
327        alkuValikko.AddItemHandler(3, tulevaisuus);
328        alkuValikko.AddItemHandler(4, rs);
329        alkuValikko.AddItemHandler(5, AloitaAlusta);
330        alkuValikko.AddItemHandler(6, Exit);
331        alkuValikko.Color = (Color.White);
332       
333}
334
335    void tulevaisuus()
336    {
337        Level.Background.Image = tule;
338        IsPaused = false;
339        verkko.Image = net3;
340        pallo.Image = pallo4;
341        MediaPlayer.Play("sj");
342       
343       
344       
345       
346        verkko.IsVisible = true;
347        kenttä.IsVisible = true;
348        kenttä.Image = tulek; 
349       
350    }
351
352   
353
354    void close()
355    {
356
357        Remove(alkuValikko);
358        IsPaused = false;
359    }
360
361    void rs()
362    {
363        piste1.Reset();
364        IsPaused = false;
365        Add(alkuValikko);
366    }
367
368    void stadionkenttä()
369    {
370        Level.Background.Image = tausta;
371        kenttä.Color = Color.SkyBlue;
372        kenttä.Image = lattia;
373        IsPaused = false;
374        verkko.Image = net;
375        pallo.Image = pallok;
376        verkko.IsVisible = true;
377        kenttä.IsVisible = true;
378        MediaPlayer.Play("ca");
379       
380
381       
382       
383       
384    }
385
386    void pysähdy()
387    {
388        Vector stopaa = new Vector(0.0, 0.0);
389        maila1.Velocity = stopaa;
390        maila2.Velocity = stopaa;
391    }
392
393
394    void liikuOikealle1()
395    {
396        Vector liikuo1 = new Vector(600.0, 0.0);
397        maila1.Velocity = liikuo1; 
398    }
399
400
401    void liikuVasemalle1()
402    {
403        Vector liikuv1 = new Vector(-600.0, 00.0);
404        maila1.Velocity = (liikuv1);
405    }
406
407    void liikuOikealle2()
408    {
409        Vector liikuo2 = new Vector(600.0, 00.0);
410        maila2.Velocity = (liikuo2);
411    }
412
413    void liikuVasemalle2()
414    {
415        Vector liikuv2 = new Vector(-600.0, 00.0);
416        maila2.Velocity = (liikuv2);
417    }
418
419    void liikuYlös1()
420    {
421        Vector liikuy1 = new Vector(0.0, 600.0);
422        maila1.Velocity = (liikuy1);
423    }
424
425    void liikuYlös2()
426    {
427        Vector liikuy2 = new Vector(0.0, 600.0);
428        maila2.Velocity = (liikuy2);
429    }
430
431    void liikuAlas1()
432    {
433        Vector liikua1 = new Vector(0.0, -600.0);
434        maila1.Velocity = (liikua1);
435    }
436
437    void liikuAlas2()
438    {
439        Vector liikua2 = new Vector(0.0, -600.0);
440        maila2.Velocity = (liikua2);
441    }
442
443
444   
445   
446
447
448
449    void LuoOikea()
450    {
451        PhysicsObject oikea = PhysicsObject.CreateStaticObject(615.0, 11.0);
452        oikea.Shape = Shape.Rectangle;
453        oikea.Tag = "oikea";
454        Add(oikea);
455        oikea.X = 343;
456        oikea.Y = -400;
457        oikea.Color = Color.White;
458        oikea.Restitution = 1.0;
459     
460    }
461
462    void LuoVasen()
463    {
464        PhysicsObject vasen = PhysicsObject.CreateStaticObject(650.0, 10.0);
465        vasen.Shape = Shape.Rectangle;
466        vasen.Tag = "vasen";
467        Add(vasen);
468        vasen.X = -325;
469        vasen.Y = -400;
470        vasen.Color = Color.White;
471        vasen.Restitution = 1.0;
472       
473    }
474
475    void laskuri()
476    {
477        piste1 = new IntMeter(0);
478
479        Label pisteNaytto = new Label();
480        pisteNaytto.X = Screen.Left + 1000;
481        pisteNaytto.Y = Screen.Top - 100;
482        pisteNaytto.TextColor = Color.Red;
483        pisteNaytto.Color = Color.Black;
484        piste1.MaxValue = 25;
485        piste1.UpperLimit += p2v;
486
487        pisteNaytto.BindTo(piste1);
488        Add(pisteNaytto);
489    }
490       void laskuri2()
491       {
492        piste2 = new IntMeter(0);
493
494        Label pisteNaytto2 = new Label();
495        pisteNaytto2.X = Screen.Right - 1000;
496        pisteNaytto2.Y = Screen.Top - 100;
497        pisteNaytto2.TextColor = Color.Red;
498        pisteNaytto2.Color = Color.Black;
499            piste2.MaxValue = 25;
500            piste2.UpperLimit += p1v;
501
502        pisteNaytto2.BindTo(piste2);
503        Add(pisteNaytto2);
504       }
505
506
507
508
509    void Lp2(PhysicsObject a, PhysicsObject b)
510    {
511        piste1.Value += 1;
512       
513        Vector up = new Vector(0, 20);
514        pallo.Hit(up);
515        pilli.Play();
516     
517        //pallo.IgnoresGravity = true;
518        //Timer.SingleShot(5.0, gf);
519     
520       
521    }
522    void gf()
523    {
524        pallo.IgnoresGravity = false;
525    }
526
527    void Lp1(PhysicsObject a, PhysicsObject b)
528    {
529        piste2.Value += 1;
530       
531        Vector up = new Vector(0, 20);
532        pallo.Hit(up);
533        pilli.Play();
534       
535        //pallo.IgnoresGravity = true;
536        //Timer.SingleShot(5.0, gf);
537       
538    }
539
540
541
542
543    void p1v()
544    {
545        MessageDisplay.Add("Pelaaja 1 voitti pelin.");
546     
547       
548        p1v1();
549       
550       
551    }
552
553    void p2v()
554    {
555        MessageDisplay.Add("Pelaaja 2 voitti pelin.");
556       
557       
558        p2v1();
559    }
560
561
562    void p1v1()
563    {
564        ClearAll();
565        a.Play();
566        Level.Background.Image = pv1;
567        Level.Background.Color = Color.Yellow;
568   
569        Timer.SingleShot(5.0, AloitaAlusta);
570       
571    }
572
573   void p2v1()
574    {
575        ClearAll();
576        a.Play();
577        Level.Background.Image = pv2;
578        Level.Background.Color = Color.Yellow;
579       
580        Timer.SingleShot(5.0, AloitaAlusta);
581    }
582    void AloitaAlusta()
583    {
584        ClearAll();
585
586        LuoKenttä();
587        LuoPallo();
588        LuoOikea();
589        laskuri();
590        laskuri2();
591        asetanapit();
592        LuoVasen();
593        valikko();
594        Add(pallo);
595        Add(kenttä);
596        Add(verkko);
597        Add(maila1);
598        Add(maila2);
599        Gravity = new Vector(0.0, -700.0);
600        MainMenu();
601    }
602
603   
604
605
606
607}
608
609
610
611
612 
613 
Note: See TracBrowser for help on using the repository browser.