source: 2011/31/TommiL/pallopeli/pallopeli/pallopeli/Peli.cs @ 2563

Revision 2563, 4.2 KB checked in by tolinnav, 8 years ago (diff)

Talletus.

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 robotti;
12    int elama = 0;
13
14    Image olionKuva = LoadImage("kuva");
15    Image olionKuva2 = LoadImage("sydän");
16    Image olionkuva3 = LoadImage("maali");
17
18   
19
20    PhysicsObject[] sydamet = new PhysicsObject[10];
21
22    public override void Begin()
23    {
24        robotti = new PhysicsObject(30,30);
25        Add(robotti);
26        robotti.X = (-450);
27        robotti.Y = (-350);
28        robotti.Color = Color.LightGray;
29        robotti.Image = olionKuva;
30        robotti.Tag = "robotti";
31
32        robotti.CanRotate = false;
33
34        Keyboard.Listen(Key.Left, ButtonState.Down,
35    LiikutaPelaajaa, null, new Vector(-1000, 0));
36        Keyboard.Listen(Key.Right, ButtonState.Down,
37          LiikutaPelaajaa, null, new Vector(1000, 0));
38        Keyboard.Listen(Key.Up, ButtonState.Down,
39          LiikutaPelaajaa, null, new Vector(0, 1000));
40        Keyboard.Listen(Key.Down, ButtonState.Down,
41          LiikutaPelaajaa, null, new Vector(0, -1000));
42        AddCollisionHandler(robotti, kasittelerobotintormays);
43       
44
45        Level.Background.CreateGradient(Color.DarkOrange
46      , Color.DarkRed);
47
48        Level.CreateBorders(1, true);
49        Camera.Zoom(1.2);
50
51        tehdapallot();
52        luomaali();
53        tehdasyotavaa();
54        while (elama < 3)
55        {
56            tehdasydan();
57        }
58       
59       
60       
61    }
62
63    void LiikutaPelaajaa(Vector vektori)
64    {
65        robotti.Push(vektori);
66    }
67
68    void tehdapallot()
69    {
70        int i = 0;
71        while (i < 35)
72        {
73            PhysicsObject pallo = new PhysicsObject(20, 20);
74            Add(pallo);
75            pallo.X = RandomGen.NextDouble ( -400,400);
76            pallo.Y = RandomGen.NextDouble ( -400,400);
77            pallo.Color = Color.Yellow;
78            pallo.Shape = Shape.Circle;
79            pallo.Restitution = 1.5;
80            pallo.Tag = "pallo";
81            pallo.CollisionIgnoreGroup = 1;
82            robotti.LinearDamping = 0.95;
83
84
85            i++;
86            pallo.Hit(new Vector(RandomGen.NextDouble(400, -400), RandomGen.NextDouble(-400, 400)));
87            AddCollisionHandler(pallo, KasittelePallonTormays);
88        }
89     }
90           
91
92
93    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde)
94    {
95        if (kohde.Tag.ToString() == "robotti")
96
97
98        {
99            Explosion rajahdys = new Explosion(100.100);
100            rajahdys.Position = robotti.Position;
101            Add(rajahdys);
102            rajahdys.Speed = 150.0;
103            rajahdys.Force = 30;           
104            elama--;
105            sydamet[elama].Destroy();
106            if (elama == 0) kohde.Destroy();
107        }     
108    }
109
110    void tehdasydan()
111    {
112
113 PhysicsObject sydän = new PhysicsObject(40.0, 40.0);
114           Add(sydän, -1);
115           sydän.Image = olionKuva2;
116           sydän.IgnoresCollisionResponse = true;
117           sydän.IgnoresExplosions = true;
118           sydamet[elama] = sydän;
119           elama++;
120           sydän.X = 300 + elama * 50;
121           sydän.Y = -300;
122       
123
124       
125
126    }
127    void luomaali()
128    {
129        PhysicsObject maali = new PhysicsObject(50, 50);
130        maali.X = 475;
131        maali.Y = 375;
132        maali.CanRotate = false;
133        maali.IgnoresExplosions = true;
134        maali.CollisionIgnoreGroup = 1;
135        maali.Image = olionkuva3;
136        maali.Tag = "maali";
137        Add(maali);
138
139    }
140    void kasittelerobotintormays(PhysicsObject robotti, PhysicsObject kohde)
141    {
142        if (kohde.Tag.ToString() == "maali")
143
144        {
145            Exit();
146        }
147    }
148
149    void tehdasyotavaa()
150    {
151        int i = 0;
152        while (i < 20)
153        {
154            PhysicsObject syötävä = new PhysicsObject(10, 10);
155           
156            Add(syötävä);
157            syötävä.X = RandomGen.NextDouble(-400, 400);
158            syötävä.Y = RandomGen.NextDouble(-400, 400);
159            i++;
160        }
161    }
162   
163
164}
165   
166
167
168
169   
170
Note: See TracBrowser for help on using the repository browser.