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

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