source: 2012/27/EemilK/Survive untill U die!/Survive untill U die!/Survive untill U die!/Survive_untill_U_die_.cs @ 3605

Revision 3605, 10.7 KB checked in by eekrkolu, 11 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 Survive_untill_U_die_ : PhysicsGame
10{
11    Vector oikealle = new Vector(100, 0);
12    Vector vasemmalle = new Vector(-100, 0);
13    Vector ylos = new Vector(0, 1);
14    PhysicsObject vihollinen;
15    PhysicsObject enemy;
16    PhysicsObject pallo;
17    PhysicsObject pallo2;
18    PhysicsObject vasenReuna;
19    PhysicsObject oikeaReuna;
20    PlasmaCannon pyssy;
21    PlasmaCannon pyssy2;
22    ExplosionSystem rajahdys;
23    ExplosionSystem rajahdysPelaaja;
24
25    IntMeter laskuri;
26    IntMeter laskuri2;
27    IntMeter laskuri23;
28
29    Image kuva = LoadImage("lawn_summer_rf_0001_large");
30    public override void Begin()
31    {
32
33        rajahdysPelaaja = new ExplosionSystem(LoadImage("atom bomb"), 100);
34        rajahdysPelaaja.MaxScale = 400;
35        rajahdysPelaaja.MinScale = 340;
36        Add(rajahdysPelaaja);
37        int i = 0;
38        while (i < 100)
39        {
40            LuoPalloja(RandomGen.NextDouble(-400, 400), RandomGen.NextDouble(600, 200));
41            i++;
42            LuoPallot(RandomGen.NextDouble(-400, 400), RandomGen.NextDouble(600, 200));
43            i++;
44        }
45        LuoPistelaskuri();
46        LuoPistelaskuri2();
47        LuoPistelaskuri3();
48
49        pyssy = new PlasmaCannon(20, 20);
50        pyssy.InfiniteAmmo = true;
51        pyssy2 = new PlasmaCannon(20, 20);
52        pyssy2.InfiniteAmmo = true;
53        Level.Background.Image = kuva;
54
55        // Pelaaja 1 (vasemman puoleinen)
56        pallo = new Pelaaja(170, 170);
57        pallo.MakeStatic();
58        pallo.Shape = Shape.Circle;
59        pallo.Image = LoadImage("p1");
60        pallo.Angle = Angle.RightAngle;
61        pallo.RotateImage = false;
62        pallo.Tag = "pallo";
63        pallo.X = -240;
64        pallo.Y = -200;
65        pallo.Destroying += delegate { rajahdysPelaaja.AddEffect(pallo.Position, 1); };
66        AddCollisionHandler(pallo, "vihu", PelaajaOsuu);
67
68        Add(pallo);
69        pallo.Add(pyssy);
70
71        // Pelaaja 2 (oikean puoleinen)
72        pallo2 = new Pelaaja(170, 170);
73        pallo2.MakeStatic();
74        pallo2.Shape = Shape.Circle;
75        pallo2.Image = LoadImage("p2");
76        pallo2.Angle = Angle.RightAngle;
77        pallo2.RotateImage = false;
78        pallo2.Tag = "pallo2";
79        pallo2.X = 240;
80        pallo2.Y = -200;
81        Add(pallo2);
82        pallo2.Add(pyssy2);
83        pallo2.Destroyed += delegate { rajahdysPelaaja.AddEffect(pallo2.Position, 100); };
84        AddCollisionHandler(pallo2, "vihu", PelaajaOsuu);
85        rajahdys = new ExplosionSystem(LoadImage("hitler"), 10);
86        Add(rajahdys);
87
88
89        vasenReuna = Level.CreateLeftBorder();
90        vasenReuna.KineticFriction = 0.0;
91        vasenReuna.Restitution = 1.0;
92        vasenReuna.IsVisible = false;
93        oikeaReuna = Level.CreateRightBorder();
94        oikeaReuna.KineticFriction = 0.0;
95        oikeaReuna.Restitution = 1.0;
96        oikeaReuna.IsVisible = false;
97        Level.CreateBorders();
98        Camera.ZoomToLevel();
99        Keyboard.Listen(Key.Space, ButtonState.Pressed, delegate { pallo.Destroy(); }, "");
100        Keyboard.Listen(Key.D, ButtonState.Down, Liiku, "pelaaja1: oikealle", pallo, oikealle);
101        Keyboard.Listen(Key.D, ButtonState.Released, Liiku, null, pallo, Vector.Zero);
102        Keyboard.Listen(Key.A, ButtonState.Down, Liiku2, "pelaaja1: vasemmalle", pallo, vasemmalle);
103        Keyboard.Listen(Key.A, ButtonState.Released, Liiku2, null, pallo, Vector.Zero);
104        Keyboard.Listen(Key.Right, ButtonState.Down, Liiku3, "pelaaja2: oikealle", pallo2, oikealle);
105        Keyboard.Listen(Key.Right, ButtonState.Released, Liiku3, null, pallo2, Vector.Zero);
106        Keyboard.Listen(Key.Left, ButtonState.Down, Liiku4, "pelaaja2: vasemmalle", pallo2, vasemmalle);
107        Keyboard.Listen(Key.Left, ButtonState.Released, Liiku4, null, pallo2, Vector.Zero);
108        Keyboard.Listen(Key.W, ButtonState.Down, AmmuAseella, "pelaaja1: Ammu");
109        Keyboard.Listen(Key.Up, ButtonState.Down, AmmuAseella2, "pelaaja2: Ammu");
110        Keyboard.Listen(Key.Q, ButtonState.Pressed, heitaKranu, "pelaaja1: heitä Kranu");
111        Keyboard.Listen(Key.RightControl, ButtonState.Pressed, heitäKranu2, "pelaaja2: heitä Kranu");
112
113        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
114        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
115    }
116    void LuoPalloja(double x, double y)
117    {
118        vihollinen = new Vihu(70, 70);
119        vihollinen.Shape = Shape.Circle;
120        vihollinen.Image = LoadImage("nazi");
121        vihollinen.X = x;
122        vihollinen.Tag = "vihu";
123        vihollinen.Y = y;
124        vihollinen.Restitution = 1.0;
125        Add(vihollinen);
126
127        FollowerBrain aivot = new FollowerBrain("pallo");
128        vihollinen.Brain = aivot;
129        aivot.Active = true;
130        aivot.Speed = 10;
131
132    }
133    void LuoPallot(double x, double y)
134    {
135        enemy = new Vihu(70, 70);
136        enemy.Shape = Shape.Circle;
137        enemy.Image = LoadImage("nazi");
138        enemy.Tag = "vihu";
139        enemy.X = x;
140        enemy.Y = y;
141        enemy.Restitution = 1.0;
142        Add(enemy);
143
144        FollowerBrain aivot2 = new FollowerBrain("pallo2");
145        enemy.Brain = aivot2;
146        aivot2.Active = true;
147        aivot2.Speed = 10;
148
149    }
150
151    void Liiku(PhysicsObject pallo, Vector oikealle)
152    {
153        if (oikealle == Vector.Zero || pallo.Right >= Level.Right)
154        {
155            pallo.Velocity = Vector.Zero;
156            return;
157        }
158        pallo.Velocity = oikealle;
159    }
160    void Liiku2(PhysicsObject pallo, Vector vasemmalle)
161    {
162        if (vasemmalle == Vector.Zero || pallo.Left <= Level.Left)
163        {
164            pallo.Velocity = Vector.Zero;
165            return;
166        }
167        pallo.Velocity = vasemmalle;
168    }
169    void Liiku3(PhysicsObject pallo2, Vector oikealle)
170    {
171        if (oikealle == Vector.Zero || pallo2.Right >= Level.Right)
172        {
173            pallo2.Velocity = Vector.Zero;
174            return;
175        }
176        pallo2.Velocity = oikealle;
177    }
178    void Liiku4(PhysicsObject pallo2, Vector vasemmalle)
179    {
180        if (vasemmalle == Vector.Zero || pallo2.Left <= Level.Left)
181        {
182            pallo2.Velocity = Vector.Zero;
183            return;
184
185        }
186        pallo2.Velocity = vasemmalle;
187    }
188    void AmmuAseella()
189    {
190        PhysicsObject panos = pyssy.Shoot();
191
192        if (panos != null)
193        {
194            panos.Color = Color.Blue;
195            panos.Size *= 1;
196            AddCollisionHandler(panos, delegate(PhysicsObject tormaaja, PhysicsObject kohde)
197            {
198                tormaaja.Destroy();
199                if (kohde.Tag.ToString() == "vihu")
200                {
201                    (kohde as Vihu).elamat.Value--;
202                    if ((kohde as Vihu).elamat.Value == 0)
203                    {
204                        rajahdys.AddEffect(kohde.Position, 1);
205                        laskuri.Value += 1;
206                        laskuri23.Value += 1;
207                        LuoPalloja(RandomGen.NextDouble(-400, 400), RandomGen.NextDouble(700, 200));
208                        LuoPallot(RandomGen.NextDouble(-400, 400), RandomGen.NextDouble(700, 200));
209                    }
210                }
211               
212            });
213        }
214    }
215    void AmmuAseella2()
216    {
217
218        PhysicsObject ammus2 = pyssy2.Shoot();
219
220        if (ammus2 != null)
221        {
222            ammus2.Color = Color.Red;
223            ammus2.Size *= 1;
224            AddCollisionHandler(ammus2, delegate(PhysicsObject tormaaja, PhysicsObject kohde)
225            {
226                tormaaja.Destroy();
227                if (kohde.Tag.ToString() == "vihu")
228                {
229                    (kohde as Vihu).elamat.Value--;
230                    if ((kohde as Vihu).elamat.Value == 0)
231                    {
232                        rajahdys.AddEffect(kohde.Position, 1);
233                        laskuri2.Value += 1;
234                        laskuri23.Value += 1;
235                        LuoPalloja(RandomGen.NextDouble(-400, 400), RandomGen.NextDouble(800, 200));
236                        LuoPallot(RandomGen.NextDouble(-400, 400), RandomGen.NextDouble(800, 200));
237                       
238                    }
239                }
240            });
241        }
242    }
243
244
245    void heitaKranu()
246    {
247        Grenade kranaatti;
248        kranaatti = new Grenade(10.0);
249        kranaatti.Angle = Angle.RightAngle;
250        pallo.Throw(kranaatti, Angle.Zero, 500);
251
252    }
253    void heitäKranu2()
254    {
255        Grenade kranaatti2;
256        kranaatti2 = new Grenade(10.0);
257        kranaatti2.Angle = Angle.RightAngle;
258        pallo2.Throw(kranaatti2, Angle.Zero, 500);
259
260    }
261
262    void LuoPistelaskuri()
263    {
264       
265        laskuri = new IntMeter(0);
266
267        Label pisteNaytto = new Label();
268        pisteNaytto.X = -400;
269        pisteNaytto.Y = -400;
270        pisteNaytto.TextColor = Color.Black;
271        pisteNaytto.Color = Color.White;
272
273        pisteNaytto.BindTo(laskuri);
274        pisteNaytto.Title = "p1: kills";
275        Add(pisteNaytto);
276}
277    void LuoPistelaskuri2()
278    {
279       
280        laskuri2 = new IntMeter(0);
281
282        Label pisteNaytto2 = new Label();
283        pisteNaytto2.X = 400;
284        pisteNaytto2.Y = -400;
285        pisteNaytto2.TextColor = Color.Black;
286        pisteNaytto2.Color = Color.White;
287
288        pisteNaytto2.BindTo(laskuri2);
289        pisteNaytto2.Title = "p2: kills"; 
290        Add(pisteNaytto2);
291    }
292    void LuoPistelaskuri3()
293    {
294       
295        laskuri23 = new IntMeter(0);
296
297        Label pisteNaytto23 = new Label();
298        pisteNaytto23.X = 0;
299        pisteNaytto23.Y = -400;
300        pisteNaytto23.TextColor = Color.Black;
301        pisteNaytto23.Color = Color.White;
302       
303        pisteNaytto23.BindTo(laskuri23);
304        pisteNaytto23.Title = "Total Kills";
305        Add(pisteNaytto23);
306    }
307   
308    void PelaajaOsuu(PhysicsObject pelaaja, PhysicsObject kohde)
309    {
310        (pelaaja as Pelaaja).hp.Value--;
311    }
312
313}
314
315public class Vihu : PhysicsObject
316{
317    public IntMeter elamat;
318
319    public Vihu(double width, double height)
320        : base(width, height)
321    {
322        elamat = new IntMeter(10, 0, 10);
323        elamat.LowerLimit += delegate { this.Destroy(); };
324    }
325}
326   
327
328
329
330public class Pelaaja : PhysicsObject
331    {
332        public IntMeter hp;
333        ExplosionSystem pum;
334
335        public Pelaaja(double width, double height)
336            : base(width, height)
337        {
338            hp = new IntMeter(20, 0, 20);
339           
340            hp.LowerLimit += delegate { this.Destroy(); };
341           
342
343        }
344    }
345
346   
Note: See TracBrowser for help on using the repository browser.