source: 2011/31/EsaN/DevOid/DevOid/DevOid/Peli.cs @ 2582

Revision 2582, 16.2 KB checked in by eskuniem, 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 Peli : PhysicsGame
10{
11    int joukots;
12    int joukotp;
13
14    double sinisenjoukot;
15    double punaisenjoukot;
16
17    Vector seuraavapaikkas;
18    Vector seuraavapaikkap;
19
20    PhysicsObject salus;
21    PhysicsObject palus;
22
23    GameObject punaisenvalinta;
24    GameObject sinisenvalinta;
25
26    GameObject bbbase;
27    GameObject brbase;
28    GameObject bpbase;
29    GameObject bpbase2;
30    GameObject bpbase3;
31    GameObject bpbase4;
32
33    Widget hiiris;
34    Widget hiirip;
35
36    Label maara1;
37    Label maara2;
38    Label maara3;
39    Label maara4;
40    Label maara5;
41    Label maara6;
42
43    int aluksia1;
44    int aluksia2;
45    int aluksia3;
46    int aluksia4;
47    int aluksia5;
48    int aluksia6;
49
50    double perusnopeus1;
51    double perusnopeus2;
52    double perusnopeus3;
53    double perusnopeus4;
54    double perusnopeus5;
55    double perusnopeus6;
56
57    List<GameObject> baset = new List<GameObject>();
58
59    List<Label> maarat = new List<Label>();
60
61
62    public override void Begin()
63    {
64
65
66        //kenttä
67        Level.CreateBorders();
68
69
70        LuoMeri();
71
72
73        LuoSaari2(700, 700, -385, 200, -45);
74        LuoSaari1(700, 700, -100, -250, 0);
75        LuoSaari1(700, 700, 200, 50, 220);
76        LuoSaari3(700, 700, 287, 250, 0);
77        LuoSaari4(700, 700, 200, -100, 0);
78
79
80        LuobBase(50, 50, 200, -150, 0, 1);
81        LuorBase(50, 50, -200, 200, 0, 2);
82        LuopBase1(30, 30, 200, 100, 0, 3);
83        LuopBase2(50, 50, -100, -250, 0, 4);
84        LuopBase3(40, 40, 425, 200, 0, 5);
85        LuopBase4(35, 35, -375, 0, 0, 6);
86
87
88        LuoHiiri1(50, 50, -400, 350, 0);
89        LuoHiiri2(50, 50, 400, -350, 0);
90
91        //pelaaja 1
92
93
94
95        //tukikohtien tekstit ja ajastimet
96
97        LuoAjastin1(1, 0, 270, -204);
98        LuoAjastin2(1, 0, -270, 268);
99        LuoAjastin3(1, 0, 270, 132);
100        LuoAjastin4(1, 0, -133, -339);
101        LuoAjastin5(1, 0, 575, 268);
102        LuoAjastin6(1, 0, -507, -3);
103
104        //pelaaja 1
105
106        Keyboard.Listen(Key.Left, ButtonState.Down,
107        LiikutaRastia1, null, new Vector(-2, 0));
108        Keyboard.Listen(Key.Right, ButtonState.Down,
109        LiikutaRastia1, null, new Vector(2, 0));
110        Keyboard.Listen(Key.Up, ButtonState.Down,
111        LiikutaRastia1, null, new Vector(0, 2));
112        Keyboard.Listen(Key.Down, ButtonState.Down,
113        LiikutaRastia1, null, new Vector(0, -2));
114        Keyboard.Listen(Key.NumPad0, ButtonState.Pressed, ValitseBase, "");
115
116
117
118        //pelaaja 2
119
120        Keyboard.Listen(Key.A, ButtonState.Down,
121        LiikutaRastia2, null, new Vector(-2, 0));
122        Keyboard.Listen(Key.D, ButtonState.Down,
123        LiikutaRastia2, null, new Vector(2, 0));
124        Keyboard.Listen(Key.W, ButtonState.Down,
125        LiikutaRastia2, null, new Vector(0, 2));
126        Keyboard.Listen(Key.S, ButtonState.Down,
127        LiikutaRastia2, null, new Vector(0, -2));
128        Keyboard.Listen(Key.Space, ButtonState.Pressed, sinisenbasevalinta, "");
129
130
131
132        Camera.ZoomToLevel();
133    }
134
135    void LuoSaari1(double leveys, double korkeus, double x, double y, double rotation)
136    {
137        Image Saari1k = LoadImage("Saari1k");
138
139        GameObject saari1 = new GameObject(leveys, korkeus);
140        saari1.X = x;
141        saari1.Y = y;
142        saari1.Angle = Angle.FromDegrees(rotation);
143        saari1.Image = Saari1k;
144        Add(saari1);
145
146
147    }
148
149    void LuoSaari2(double leveys, double korkeus, double x, double y, double rotation)
150    {
151        Image Saari2k = LoadImage("Saari2k");
152
153        GameObject saari2 = new GameObject(leveys, korkeus);
154        saari2.X = x;
155        saari2.Y = y;
156        saari2.Angle = Angle.FromDegrees(rotation);
157        saari2.Image = Saari2k;
158        Add(saari2);
159
160
161    }
162
163    void LuoSaari3(double leveys, double korkeus, double x, double y, double rotation)
164    {
165        Image Saari3k = LoadImage("Saari3k");
166
167        GameObject saari3 = new GameObject(leveys, korkeus);
168        saari3.X = x;
169        saari3.Y = y;
170        saari3.Angle = Angle.FromDegrees(rotation);
171        saari3.Image = Saari3k;
172        Add(saari3);
173
174
175    }
176
177    void LuoMeri()
178    {
179        Image merik = LoadImage("meri");
180        Level.Background.Image = merik;
181        Level.Background.FitToLevel();
182
183
184    }
185
186    void LuoSaari4(double leveys, double korkeus, double x, double y, double rotation)
187    {
188        Image Saari4k = LoadImage("Saari4k");
189
190        GameObject saari4 = new GameObject(leveys, korkeus);
191        saari4.X = x;
192        saari4.Y = y;
193        saari4.Angle = Angle.FromDegrees(rotation);
194        saari4.Image = Saari4k;
195        Add(saari4);
196
197
198    }
199
200    void LuobBase(double leveys, double korkeus, double x, double y, double rotation, int basenumero)
201    {
202
203        Image bbasek = LoadImage("bluebase");
204        bbbase = new GameObject(leveys, korkeus);
205        baset.Add(bbbase);
206        bbbase.X = x;
207        bbbase.Y = y;
208        bbbase.Angle = Angle.FromDegrees(rotation);
209        bbbase.Image = bbasek;
210        Add(bbbase);
211
212    }
213
214    void LuorBase(double leveys, double korkeus, double x, double y, double rotation, int basenumero)
215    {
216
217        Image rbasek = LoadImage("redbase");
218        brbase = new GameObject(leveys, korkeus);
219        baset.Add(brbase);
220         brbase.X = x;
221        brbase.Y = y;
222        brbase.Angle = Angle.FromDegrees(rotation);
223        brbase.Image = rbasek;
224        Add(brbase);
225
226    }
227
228    void LuopBase1(double leveys, double korkeus, double x, double y, double rotation, int basenumero)
229    {
230
231        Image pbasek = LoadImage("plainbase");
232        bpbase = new GameObject(leveys, korkeus);
233        baset.Add(bpbase);
234        bpbase.X = x;
235        bpbase.Y = y;
236        bpbase.Angle = Angle.FromDegrees(rotation);
237        bpbase.Image = pbasek;
238        Add(bpbase);
239
240    }
241
242    void LuopBase2(double leveys, double korkeus, double x, double y, double rotation, int basenumero)
243    {
244
245        Image pbasek = LoadImage("plainbase");
246        bpbase2 = new GameObject(leveys, korkeus);
247        baset.Add(bpbase2);
248        bpbase2.X = x;
249        bpbase2.Y = y;
250        bpbase2.Angle = Angle.FromDegrees(rotation);
251        bpbase2.Image = pbasek;
252        Add(bpbase2);
253
254    }
255
256    void LuopBase3(double leveys, double korkeus, double x, double y, double rotation, int basenumero)
257    {
258
259        Image pbasek = LoadImage("plainbase");
260        bpbase3 = new GameObject(leveys, korkeus);
261        baset.Add(bpbase3);
262        bpbase3.X = x;
263        bpbase3.Y = y;
264        bpbase3.Angle = Angle.FromDegrees(rotation);
265        bpbase3.Image = pbasek;
266        Add(bpbase3);
267
268    }
269
270    void LuopBase4(double leveys, double korkeus, double x, double y, double rotation, int basenumero)
271    {
272
273        Image pbasek = LoadImage("plainbase");
274        bpbase4 = new GameObject(leveys, korkeus);
275        baset.Add(bpbase4);
276        bpbase4.X = x;
277        bpbase4.Y = y;
278        bpbase4.Angle = Angle.FromDegrees(rotation);
279        bpbase4.Image = pbasek;
280        Add(bpbase4);
281
282    }
283
284    void LuoAlus(double leveys, double korkeus, double x, double y, double rotation)
285    {
286
287        Image alusk = LoadImage("alus");
288        PhysicsObject alus = new PhysicsObject(leveys, korkeus);
289        alus.X = x;
290        alus.Y = y;
291        alus.Angle = Angle.FromDegrees(rotation);
292        alus.Image = alusk;
293        Add(alus);
294
295    }
296
297    void LuoHiiri2(double leveys, double korkeus, double x, double y, double rotation)
298    {
299
300        Image hiirisk = LoadImage("hiiris");
301        hiiris = new Widget(leveys, korkeus);
302        hiiris.X = x;
303        hiiris.Y = y;
304        hiiris.Angle = Angle.FromDegrees(rotation);
305        hiiris.Image = hiirisk;
306        Add(hiiris);
307
308
309    }
310
311    void LuoHiiri1(double leveys, double korkeus, double x, double y, double rotation)
312    {
313
314        Image hiiripk = LoadImage("hiirip");
315        hiirip = new Widget(leveys, korkeus);
316        hiirip.X = x;
317        hiirip.Y = y;
318        hiirip.Angle = Angle.FromDegrees(rotation);
319        hiirip.Image = hiiripk;
320        Add(hiirip);
321
322    }
323
324    void LiikutaRastia1(Vector vektori)
325    {
326
327
328        if (hiirip.X > Screen.Right)
329        {
330            hiirip.X -= 10;
331        }
332
333        else
334        {
335            hiirip.Position += vektori;
336        }
337
338        if (hiirip.X < Screen.Left)
339        {
340            hiirip.X += 10;
341        }
342        else
343        {
344            hiirip.Position += vektori;
345        }
346
347        if (hiirip.Y > Screen.Top)
348        {
349            hiirip.Y -= 10;
350        }
351        else
352        {
353            hiirip.Position += vektori;
354        }
355
356        if (hiirip.Y < Screen.Bottom)
357        {
358            hiirip.Y += 10;
359        }
360        else
361        {
362            hiirip.Position += vektori;
363        }
364    }
365
366    void LiikutaRastia2(Vector vektori)
367    {
368        if (hiiris.X > Screen.Right)
369        {
370            hiiris.X -= 10;
371        }
372
373        else
374        {
375            hiiris.Position += vektori;
376        }
377
378        if (hiiris.X < Screen.Left)
379        {
380            hiiris.X += 10;
381        }
382        else
383        {
384            hiiris.Position += vektori;
385        }
386
387        if (hiiris.Y > Screen.Top)
388        {
389            hiiris.Y -= 10;
390        }
391        else
392        {
393            hiiris.Position += vektori;
394        }
395
396        if (hiiris.Y < Screen.Bottom)
397        {
398            hiiris.Y += 10;
399        }
400        else
401        {
402            hiiris.Position += vektori;
403        }
404    }
405
406    void LuoAjastin1(double perusnopeus1, int aluksia1, double x, double y)
407    {
408        Timer ajastin = new Timer();
409        ajastin.Interval = perusnopeus1;
410        ajastin.Timeout += lisaaalus1;
411        ajastin.Start();
412
413        maara1 = new Label(50.0, 20.0, aluksia1.ToString());
414        maara1.TextColor = Color.White;
415        maara1.X = x;
416        maara1.Y = y;
417
418
419        Add(maara1);
420    }
421    void LuoAjastin2(double perusnopeus2, int aluksia2, double x, double y)
422    {
423        Timer ajastin = new Timer();
424        ajastin.Interval = perusnopeus2;
425        ajastin.Timeout += lisaaalus2;
426        ajastin.Start();
427
428        maara2 = new Label(50.0, 20.0, aluksia2.ToString());
429        maara2.TextColor = Color.White;
430        maara2.X = x;
431        maara2.Y = y;
432
433
434        Add(maara2);
435    }
436
437    void LuoAjastin3(double perusnopeus3, int aluksia3, double x, double y)
438    {
439        Timer ajastin = new Timer();
440        ajastin.Interval = perusnopeus3;
441        ajastin.Timeout += lisaaalus3;
442        ajastin.Start();
443
444        maara3 = new Label(50.0, 20.0, aluksia3.ToString());
445        maara3.TextColor = Color.White;
446        maara3.X = x;
447        maara3.Y = y;
448
449        Add(maara3);
450    }
451
452    void LuoAjastin4(double perusnopeus4, int aluksia4, double x, double y)
453    {
454        Timer ajastin = new Timer();
455        ajastin.Interval = perusnopeus4;
456        ajastin.Timeout += lisaaalus4;
457        ajastin.Start();
458
459        maara4 = new Label(50.0, 20.0, aluksia4.ToString());
460        maara4.TextColor = Color.White;
461        maara4.X = x;
462        maara4.Y = y;
463
464
465        Add(maara4);
466    }
467
468    void LuoAjastin5(double perusnopeus5, int aluksia5, double x, double y)
469    {
470        Timer ajastin = new Timer();
471        ajastin.Interval = perusnopeus5;
472        ajastin.Timeout += lisaaalus5;
473        ajastin.Start();
474
475        maara5 = new Label(50.0, 20.0, aluksia5.ToString());
476        maara5.TextColor = Color.White;
477        maara5.X = x;
478        maara5.Y = y;
479
480
481        Add(maara5);
482    }
483
484    void LuoAjastin6(double perusnopeus6, int aluksia1, double x, double y)
485    {
486        Timer ajastin = new Timer();
487        ajastin.Interval = perusnopeus6;
488        ajastin.Timeout += lisaaalus6;
489        ajastin.Start();
490
491        maara6 = new Label(50.0, 20.0, aluksia6.ToString());
492        maara6.TextColor = Color.White;
493        maara6.X = x;
494        maara6.Y = y;
495
496
497        Add(maara6);
498    }
499
500
501
502    void lisaaalus1()
503    {
504
505        aluksia1++;
506        maara1.Text = aluksia1.ToString();
507
508    }
509
510    void lisaaalus2()
511    {
512
513        aluksia2++;
514        maara2.Text = aluksia2.ToString();
515
516    }
517
518    void lisaaalus3()
519    {
520
521        aluksia3++;
522        maara3.Text = aluksia3.ToString();
523
524    }
525
526    void lisaaalus4()
527    {
528
529        aluksia4++;
530        maara4.Text = aluksia4.ToString();
531
532    }
533
534    void lisaaalus5()
535    {
536
537        aluksia5++;
538        maara5.Text = aluksia5.ToString();
539
540    }
541
542    void lisaaalus6()
543    {
544
545        aluksia6++;
546        maara6.Text = aluksia6.ToString();
547
548    }
549
550
551    void ValitseBase()
552    {
553
554        Vector hiirenPaikka = Camera.ScreenToWorld(hiirip.Position);
555
556
557        foreach (GameObject b in baset)
558        {
559
560            if (hiirenPaikka.X < b.X + 50 && hiirenPaikka.X > b.X - 50 && hiirenPaikka.Y < b.Y + 50 && hiirenPaikka.Y > b.Y - 50)
561            {
562                if (punaisenvalinta == null)
563                {
564                    punaisenvalinta = new GameObject(100, 100);
565                    punaisenvalinta.Position = b.Position;
566                    Image punaisenvalintak = LoadImage("punaisenvalintak");
567                    punaisenvalinta.Image = punaisenvalintak;
568
569                    Add(punaisenvalinta, 1);
570                }
571
572                else
573                {
574                    laheta_aluksiap(punaisenvalinta.Position, b.Position);
575                    punaisenvalinta.Position = b.Position;
576
577                }
578
579            }
580
581        }
582    }
583
584
585    void sinisenbasevalinta()
586    {
587
588        Vector shiirenPaikka = Camera.ScreenToWorld(hiiris.Position);
589        foreach (GameObject b in baset)
590
591
592            // Hiiri on basen sisällä
593            if (shiirenPaikka.X < b.X + 50 && shiirenPaikka.X > b.X - 50 && shiirenPaikka.Y < b.Y + 50 && shiirenPaikka.Y > b.Y - 50)
594            {
595                // Jos valintaa ei ole olemassa niin tehdään valinta
596                if (sinisenvalinta == null)
597                {
598                    sinisenvalinta = new GameObject(100, 100);
599                    sinisenvalinta.Position = b.Position;
600                    Image sinisenvalintak = LoadImage("sinisenvalintak");
601                    sinisenvalinta.Image = sinisenvalintak;
602
603                    Add(sinisenvalinta, 1);
604
605   
606                }
607
608                    // Muuten vaan siirretään valintaa
609                else
610                { 
611                    sinisenjoukot = 10;
612                    laheta_aluksias(sinisenvalinta.Position, b.Position, sinisenjoukot);
613                    sinisenvalinta.Position = b.Position;
614                    }
615                   
616                   
617
618
619                }
620
621            }
622
623
624
625
626   
627
628    void laheta_aluksias(Vector paikkas, Vector seuraavapaikka, double joukots)
629    {
630        salus = new PhysicsObject(100, 100);
631        salus.Position = paikkas;
632        Image alusk = LoadImage("alus");
633        salus.Image = alusk;
634
635        Add(salus);
636
637        salus.MoveTo(seuraavapaikka, 100);
638
639        salus.ArrivedAt += svahenna_aluksia ;
640    }
641
642
643    void laheta_aluksiap(Vector paikkap, Vector seuraavapaikkap)
644    {
645        palus = new PhysicsObject(100, 100);
646        palus.Position = paikkap;
647        Image alusk = LoadImage("alus");
648        palus.Image = alusk;
649
650        Add(palus);
651
652        palus.MoveTo(seuraavapaikkap, 100);
653
654    }
655
656    void svahenna_aluksia(GameObject salus, Vector seuraavapaikkas)
657{
658    salus.Destroy();
659
660    if (sinisenvalinta.Position == bbbase.Position)
661    {
662        aluksia1 -= joukots;
663
664    }
665
666    if (sinisenvalinta.Position == brbase.Position)
667    {
668        aluksia2 = aluksia2 - joukots;
669
670    }
671
672    if (sinisenvalinta.Position == bpbase.Position)
673    {
674        aluksia3 -= joukots;
675
676    }
677
678    if (sinisenvalinta.Position == bpbase2.Position)
679    {
680        aluksia4 -= joukots;
681
682    }
683
684    if (sinisenvalinta.Position == bpbase3.Position)
685    {
686        aluksia5 -= joukots;
687
688    }
689
690    if (sinisenvalinta.Position == bpbase4.Position)
691    {
692        aluksia6 -= joukots;
693
694    }
695
696
697}
698}
699
700
Note: See TracBrowser for help on using the repository browser.