source: 2012/24/HenriH/SpaceBattle/SpaceBattle/SpaceBattle/SpaceBattle.cs @ 2989

Revision 2989, 11.1 KB checked in by jahebahu, 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 SpaceBattle : PhysicsGame
10{
11    PhysicsObject alus1;
12    PhysicsObject alus2;
13    Image tausta = LoadImage("background");
14    Image aluskuva1 = LoadImage("olio1");
15    Image alus1kaasuttaa = LoadImage("alus1kaasuttaa");
16    Image aluskuva2 = LoadImage("olio2");
17    Image alus2kaasuttaa = LoadImage("alus2kaasuttaa");
18    Image plasma1 = LoadImage("plasmaammus1");
19    Image plasma2 = LoadImage("plasmammus2");
20    List<Label> valikonKohdat;
21    AssaultRifle Plasma1;
22    AssaultRifle Plasma2;
23    ExplosionSystem rajahdys;
24    public override void Begin()
25    {
26        Valikko();
27        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
28        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
29    }
30    void Valikko()
31    {
32        ClearAll();
33        valikonKohdat = new List<Label>();
34
35        IsFullScreen = true;
36        Level.Background.Image = tausta;
37        Level.Background.FitToLevel();
38        Camera.StayInLevel = true;
39        Label kohta1 = new Label("Aloita uusi peli");
40        kohta1.Position = new Vector(0, 50);
41        valikonKohdat.Add(kohta1);
42
43        Label kohta2 = new Label("Lopeta");
44        kohta2.Position = new Vector(0, -50);
45        valikonKohdat.Add(kohta2);
46
47        foreach (Label valikonKohta in valikonKohdat)
48        {
49            Add(valikonKohta);
50        }
51
52        Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, AloitaPeli, null);
53        Mouse.ListenOn(kohta2, MouseButton.Left, ButtonState.Pressed, Exit, null);
54
55        Mouse.IsCursorVisible = true;
56        Mouse.ListenMovement(1.0, ValikossaLiikkuminen, null);
57
58    }
59    void ValikossaLiikkuminen(AnalogState Hiirentila)
60    {
61        foreach (Label kohta in valikonKohdat)
62        {
63            if (Mouse.IsCursorOn(kohta))
64            {
65                kohta.TextColor = Color.Red;
66            }
67            else
68            {
69                kohta.TextColor = Color.White;
70                kohta.Font = Font.DefaultLargeBold;
71            }
72        }
73    }
74    void AloitaPeli()
75    {
76        ClearAll();
77        // KENTÄN LUOMISTA + MUUTA
78        IsFullScreen = true;
79        Level.Background.Image = tausta;
80        Level.Background.FitToLevel();
81        Camera.StayInLevel = true;
82        Level.CreateBorders(0.5, false);
83
84        MediaPlayer.Play("musiikkizedd");
85        laskuri3();
86        laskuri4();
87        LuoLaskuri();
88        LuoLaskuri1();
89        LuoAlus2();
90        LuoAlus1();
91
92        Plasma1 = new AssaultRifle(20, 5);
93        Plasma2 = new AssaultRifle(20, 5);
94        alus1.Add(Plasma1);
95        alus2.Add(Plasma2);
96        Plasma1.ProjectileCollision = AmmusOsui;
97        Plasma2.ProjectileCollision = AmmusOsui2;
98        rajahdys = new ExplosionSystem(LoadImage("rajahdys"), 150);
99        Add(rajahdys);
100
101
102
103
104
105
106
107
108
109
110
111
112
113        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Valikko, "Palaa valikkoon");
114        Keyboard.Listen(Key.Up, ButtonState.Down, kiihdytaalus, "Kiihdytä alusta 1", alus1);
115        Keyboard.Listen(Key.Up, ButtonState.Released, ajaalus, null, alus1);
116        Keyboard.Listen(Key.Left, ButtonState.Down, kaannaalus, "Käännä alusta 1 Vasemmalle.", alus1);
117        Keyboard.Listen(Key.Right, ButtonState.Down, kaannaalus2, "Käännä alusta 1 Oikealle.", alus1);
118        Keyboard.Listen(Key.A, ButtonState.Down, kaannaalus3, "Käännä alusta 2 Vasemmalle.", alus2);
119        Keyboard.Listen(Key.W, ButtonState.Down, kiihdytaalus2, "Kiihdytä alusta 2", alus2);
120        Keyboard.Listen(Key.W, ButtonState.Released, ajaalus2, null, alus2);
121        Keyboard.Listen(Key.D, ButtonState.Down, kaannaalus4, "Käännä alusta Oikealle.", alus2);
122        Keyboard.Listen(Key.RightControl, ButtonState.Down, AmmuAseella, "Ammu pelaajan 1 asetta", Plasma1, alus1);
123        Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella2, "Ammu Pelaajan 2 asetta", Plasma2, alus2);
124
125    }
126    void LuoAlus1()
127    {
128        alus1 = new PhysicsObject(50.0, 50.0);
129        alus1.Tag = "Alus1";
130        alus1.X = 300;
131        alus1.Y = 150;
132        alus1.Image = aluskuva1;
133        alus1.AngularDamping = 0.50;
134        alus1.Restitution = 0.2;
135        alus1.CollisionIgnoreGroup = 1;
136        Add(alus1);
137    }
138    void LuoAlus2()
139    {
140        alus2 = new PhysicsObject(50.0, 50.0);
141        alus2.Tag = "Alus2";
142        alus2.X = 150;
143        alus2.Y = 300;
144        alus2.Image = aluskuva2;
145        alus2.AngularDamping = 0.50;
146        alus2.Restitution = 0.2;
147        alus2.CollisionIgnoreGroup = 2;
148        Add(alus2);
149    }
150
151    void kiihdytaalus(PhysicsObject alus)
152    {
153        alus.Image = alus1kaasuttaa;
154        Vector voima = Vector.FromLengthAndAngle(1000, alus.Angle);
155        alus.Push(voima);
156    }
157    void ajaalus(PhysicsObject alus)
158    {
159        alus.Image = aluskuva1;
160    }
161    void kaannaalus(PhysicsObject alus)
162    {
163        alus.Angle += Angle.FromDegrees(5);
164    }
165    void kaannaalus2(PhysicsObject alus)
166    {
167        alus.Angle -= Angle.FromDegrees(5);
168    }
169    void kaannaalus3(PhysicsObject alus2)
170    {
171        alus2.Angle += Angle.FromDegrees(5);
172    }
173    void kaannaalus4(PhysicsObject alus2)
174    {
175        alus2.Angle -= Angle.FromDegrees(5);
176    }
177    void ajaalus2(PhysicsObject alus2)
178    {
179        alus2.Image = aluskuva2;
180    }
181    void kiihdytaalus2(PhysicsObject alus2)
182    {
183        alus2.Image = alus2kaasuttaa;
184        Vector voima = Vector.FromLengthAndAngle(1000, alus2.Angle);
185        alus2.Push(voima);
186    }
187    void AmmuAseella(Weapon Plasma1, PhysicsObject alus)
188    {
189        PhysicsObject ammus = Plasma1.Shoot();
190
191        if (ammus != null)
192        {
193            ammus.Size *= 2;
194            ammus.Image = plasma1;
195            Plasma1.Ammo.Value = 3000;
196
197            ammus.CollisionIgnoreGroup = alus.CollisionIgnoreGroup;
198
199        }
200    }
201    void AmmusOsui(PhysicsObject Ammus, PhysicsObject kohde)
202    {
203        if (kohde.Tag.ToString() == "Alus2")
204        {
205            rajahdys.AddEffect(Ammus.Position, 20);
206            elamalaskuri1.Value -= 10;
207        }
208        if (elamalaskuri1.Value <= 0)
209        {
210            Remove(alus2);
211            elamalaskuri1.Value = 100;
212            Timer.SingleShot(3.0, ajastinlaukesi);
213            kuolemalaskuri1.Value -= 1;
214            if (kuolemalaskuri1.Value <= 0)
215            {
216                lopputeksti1();
217            }
218        }
219        Ammus.Destroy();
220    }
221    void AmmuAseella2(Weapon Plasma2, PhysicsObject alus2)
222    {
223        PhysicsObject ammus = Plasma2.Shoot();
224
225
226
227        if (ammus != null)
228        {
229            ammus.Size *= 2;
230            ammus.Image = plasma2;
231            Plasma2.Ammo.Value = 3000;
232
233            ammus.CollisionIgnoreGroup = alus2.CollisionIgnoreGroup;
234        }
235    }
236
237    void AmmusOsui2(PhysicsObject Ammus, PhysicsObject kohde)
238    {
239        if (kohde.Tag.ToString() == "Alus1")
240        {
241            rajahdys.AddEffect(Ammus.Position, 20);
242            elamalaskuri2.Value -= 10;
243        }
244
245        if (elamalaskuri2.Value <= 0)
246        {
247
248            Remove(alus1);
249            elamalaskuri2.Value = 100;
250            //Add(alus2);
251            Timer.SingleShot(3.0, ajastinlaukesi2);
252            kuolemalaskuri2.Value -= 1;
253            if (kuolemalaskuri2.Value <= 0)
254            {
255               lopputeksti2();
256            }
257        }
258
259        Ammus.Destroy();
260    }
261    IntMeter elamalaskuri2;
262
263    void LuoLaskuri()
264    {
265        elamalaskuri2 = new IntMeter(100);
266
267        Label pisteNaytto = new Label();
268        pisteNaytto.X = Screen.Right - 100;
269        pisteNaytto.Y = Screen.Top - 100;
270        pisteNaytto.TextColor = Color.White;
271
272
273        pisteNaytto.BindTo(elamalaskuri2);
274        Add(pisteNaytto);
275    }
276    IntMeter elamalaskuri1;
277
278    void LuoLaskuri1()
279    {
280        elamalaskuri1 = new IntMeter(100);
281
282        Label pisteNaytto = new Label();
283        pisteNaytto.X = Screen.Left + 100;
284        pisteNaytto.Y = Screen.Top - 100;
285        pisteNaytto.TextColor = Color.White;
286
287
288        pisteNaytto.BindTo(elamalaskuri1);
289        Add(pisteNaytto);
290    }
291    void ajastinlaukesi()
292    {
293        Add(alus2);
294    }
295    void ajastinlaukesi2()
296    {
297        Add(alus1);
298    }
299    IntMeter kuolemalaskuri1;
300
301    void laskuri3()
302    {
303        kuolemalaskuri1 = new IntMeter(5);
304
305        Label pisteNaytto = new Label();
306        pisteNaytto.X = Screen.Left + 50;
307        pisteNaytto.Y = Screen.Top - 100;
308        pisteNaytto.TextColor = Color.White;
309        pisteNaytto.BindTo(kuolemalaskuri1);
310        Add(pisteNaytto);
311    }
312    IntMeter kuolemalaskuri2;
313
314    void laskuri4()
315    {
316        kuolemalaskuri2 = new IntMeter(5);
317
318        Label pisteNaytto = new Label();
319        pisteNaytto.X = Screen.Right - 50;
320        pisteNaytto.Y = Screen.Top - 100;
321        pisteNaytto.TextColor = Color.White;
322        pisteNaytto.BindTo(kuolemalaskuri2);
323        Add(pisteNaytto);
324
325    }
326
327    void lopputeksti1()
328    {
329        ClearAll();
330
331        Camera.ZoomToLevel();
332        Camera.StayInLevel = true;
333        Level.Background.Image = tausta;
334        Level.Background.FitToLevel();
335        Label tekstikentta1 = new Label("NASA voitti!");
336        tekstikentta1.Color = Color.Transparent;
337        tekstikentta1.TextColor = Color.White;
338        tekstikentta1.BorderColor = Color.Transparent;
339        tekstikentta1.Font = Font.DefaultLargeBold;
340
341        Label kohta1 = new Label("Takaisin Valikkoon");
342        kohta1.Position = new Vector(0, -80);
343        Add(kohta1);
344
345       
346
347        Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, Valikko
348            , null);
349       
350
351
352        if (Mouse.IsCursorOn(kohta1))
353        {
354            kohta1.TextColor = Color.Red;
355        }
356        else
357        {
358            kohta1.TextColor = Color.White;
359            kohta1.Font = Font.DefaultLargeBold;           
360                Add(tekstikentta1);
361
362            }
363        }
364
365    void lopputeksti2()
366    {
367        ClearAll();
368
369        Camera.ZoomToLevel();
370        Camera.StayInLevel = true;
371        Level.Background.Image = tausta;
372        Level.Background.FitToLevel();
373        Label tekstikentta1 = new Label("Soviet Russia voitti!");
374        tekstikentta1.Color = Color.Transparent;
375        tekstikentta1.TextColor = Color.White;
376        tekstikentta1.BorderColor = Color.Transparent;
377        tekstikentta1.Font = Font.DefaultLargeBold;
378
379        Label kohta1 = new Label("Takaisin Valikkoon");
380        kohta1.Position = new Vector(0, -80);
381        Add(kohta1);
382
383
384
385        Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, Valikko
386            , null);
387
388
389
390        if (Mouse.IsCursorOn(kohta1))
391        {
392            kohta1.TextColor = Color.Red;
393        }
394        else
395        {
396            kohta1.TextColor = Color.White;
397            kohta1.Font = Font.DefaultLargeBold;
398            Add(tekstikentta1);
399
400        }
401    }
402
403    }
404   
405
406
407   
408
Note: See TracBrowser for help on using the repository browser.