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

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