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

Revision 3019, 11.0 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        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Valikko, "Palaa valikkoon");
103        Keyboard.Listen(Key.Up, ButtonState.Down, KiihdytaAlus, "Kiihdytä alusta 1", alus1, alus1kaasuttaa);
104        Keyboard.Listen(Key.Up, ButtonState.Released, ajaalus, null, alus1);
105        Keyboard.Listen(Key.Left, ButtonState.Down, KaannaAlus, "Käännä alusta 1 Vasemmalle.", alus1, 5.0);
106        Keyboard.Listen(Key.Right, ButtonState.Down, KaannaAlus, "Käännä alusta 1 Oikealle.", alus1, -5.0);
107        Keyboard.Listen(Key.Down, ButtonState.Down, Hidasta, "Hidasta alusta 2", alus1);
108        Keyboard.Listen(Key.RightControl, ButtonState.Down, AmmuAseella, "Ammu pelaajan 1 asetta", Plasma1, alus1);
109
110        Keyboard.Listen(Key.A, ButtonState.Down, KaannaAlus, "Käännä alusta 2 Vasemmalle.", alus2, 5.0);
111        Keyboard.Listen(Key.D, ButtonState.Down, KaannaAlus, "Käännä alusta Oikealle.", alus2, -5.0);
112        Keyboard.Listen(Key.W, ButtonState.Down, KiihdytaAlus, "Kiihdytä alusta 2", alus2, alus2kaasuttaa);
113        Keyboard.Listen(Key.W, ButtonState.Released, ajaalus2, null, alus2);
114        Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella2, "Ammu Pelaajan 2 asetta", Plasma2, alus2);
115        Keyboard.Listen(Key.S, ButtonState.Down, Hidasta, "Hidasta alusta 2", alus2);
116    }
117
118    void Hidasta(PhysicsObject alus)
119    {
120        alus.Velocity = new Vector(alus.Velocity.X / 1.1, alus.Velocity.Y / 1.1);
121    }
122
123    void LuoAlus1()
124    {
125        alus1 = new PhysicsObject(50.0, 50.0);
126        alus1.Tag = "Alus1";
127        alus1.X = 300;
128        alus1.Y = 150;
129        alus1.Image = aluskuva1;
130        alus1.AngularDamping = 0.50;
131        alus1.Restitution = 0.1;
132        alus1.CollisionIgnoreGroup = 1;
133        Add(alus1);
134    }
135    void LuoAlus2()
136    {
137        alus2 = new PhysicsObject(50.0, 50.0);
138        alus2.Tag = "Alus2";
139        alus2.X = 150;
140        alus2.Y = 300;
141        alus2.Image = aluskuva2;
142        alus2.AngularDamping = 0.50;
143        alus2.Restitution = 0.1;
144        alus2.CollisionIgnoreGroup = 2;
145        Add(alus2);
146    }
147
148    void KiihdytaAlus(PhysicsObject alus, Image kaasutusKuva)
149    {
150        // alus.Image = alus1kaasuttaa;
151        alus.Image = kaasutusKuva;
152        Vector voima = Vector.FromLengthAndAngle(1000, alus.Angle);
153        alus.Push(voima);
154    }
155    void ajaalus(PhysicsObject alus)
156    {
157        alus.Image = aluskuva1;
158    }
159   
160    void KaannaAlus(PhysicsObject alus, double kulmaAsteina)
161    {
162        alus.Angle += Angle.FromDegrees(kulmaAsteina);
163    }
164
165    void ajaalus2(PhysicsObject alus2)
166    {
167        alus2.Image = aluskuva2;
168    }
169
170    void AmmuAseella(Weapon Plasma1, PhysicsObject alus)
171    {
172        PhysicsObject ammus = Plasma1.Shoot();
173
174        if (ammus != null)
175        {
176            ammus.Size *= 2;
177            ammus.Image = plasma1;
178            Plasma1.Ammo.Value = 3000;
179
180            ammus.CollisionIgnoreGroup = alus.CollisionIgnoreGroup;
181
182        }
183    }
184    void AmmusOsui(PhysicsObject Ammus, PhysicsObject kohde)
185    {
186        if (kohde.Tag.ToString() == "Alus2")
187        {
188            rajahdys.AddEffect(Ammus.Position, 20);
189            elamalaskuri1.Value -= 10;
190        }
191        if (elamalaskuri1.Value <= 0)
192        {
193            Remove(alus2);
194            elamalaskuri1.Value = 100;
195            Timer.SingleShot(3.0, ajastinlaukesi);
196            kuolemalaskuri1.Value -= 1;
197            if (kuolemalaskuri1.Value <= 0)
198            {
199                lopputeksti1();
200            }
201        }
202        Ammus.Destroy();
203    }
204    void AmmuAseella2(Weapon Plasma2, PhysicsObject alus2)
205    {
206        PhysicsObject ammus = Plasma2.Shoot();
207
208
209
210        if (ammus != null)
211        {
212            ammus.Size *= 2;
213            ammus.Image = plasma2;
214            Plasma2.Ammo.Value = 3000;
215
216            ammus.CollisionIgnoreGroup = alus2.CollisionIgnoreGroup;
217        }
218    }
219
220    void AmmusOsui2(PhysicsObject Ammus, PhysicsObject kohde)
221    {
222        if (kohde.Tag.ToString() == "Alus1")
223        {
224            rajahdys.AddEffect(Ammus.Position, 20);
225            elamalaskuri2.Value -= 10;
226        }
227
228        if (elamalaskuri2.Value <= 0)
229        {
230
231            Remove(alus1);
232            elamalaskuri2.Value = 100;
233            //Add(alus2);
234            Timer.SingleShot(3.0, ajastinlaukesi2);
235            kuolemalaskuri2.Value -= 1;
236            if (kuolemalaskuri2.Value <= 0)
237            {
238               lopputeksti2();
239            }
240        }
241
242        Ammus.Destroy();
243    }
244    IntMeter elamalaskuri2;
245
246    void LuoLaskuri()
247    {
248        elamalaskuri2 = new IntMeter(100);
249
250        Label pisteNaytto = new Label();
251        pisteNaytto.X = Screen.Right - 100;
252        pisteNaytto.Y = Screen.Top - 100;
253        pisteNaytto.TextColor = Color.White;
254
255
256        pisteNaytto.BindTo(elamalaskuri2);
257        Add(pisteNaytto);
258    }
259    IntMeter elamalaskuri1;
260
261    void LuoLaskuri1()
262    {
263        elamalaskuri1 = new IntMeter(100);
264
265        Label pisteNaytto2 = new Label();
266        pisteNaytto2.X = Screen.Left + 100;
267        pisteNaytto2.Y = Screen.Top - 100;
268        pisteNaytto2.TextColor = Color.White;
269
270        pisteNaytto2.BindTo(elamalaskuri1);
271        Add(pisteNaytto2);
272    }
273    void ajastinlaukesi()
274    {
275        Add(alus2);
276    }
277    void ajastinlaukesi2()
278    {
279        Add(alus1);
280    }
281    IntMeter kuolemalaskuri1;
282
283    void laskuri3()
284    {
285        kuolemalaskuri1 = new IntMeter(5);
286
287        Label pisteNaytto = new Label();
288        pisteNaytto.X = Screen.Left + 50;
289        pisteNaytto.Y = Screen.Top - 100;
290        pisteNaytto.TextColor = Color.White;
291        pisteNaytto.BindTo(kuolemalaskuri1);
292        Add(pisteNaytto);
293    }
294    IntMeter kuolemalaskuri2;
295
296    void laskuri4()
297    {
298        kuolemalaskuri2 = new IntMeter(5);
299
300        Label pisteNaytto = new Label();
301        pisteNaytto.X = Screen.Right - 50;
302        pisteNaytto.Y = Screen.Top - 100;
303        pisteNaytto.TextColor = Color.White;
304        pisteNaytto.BindTo(kuolemalaskuri2);
305        Add(pisteNaytto);
306
307    }
308
309    void lopputeksti1()
310    {
311        ClearAll();
312
313        Camera.ZoomToLevel();
314        Camera.StayInLevel = true;
315        Level.Background.Image = tausta;
316        Level.Background.FitToLevel();
317        Label tekstikentta1 = new Label("NASA voitti!");
318        tekstikentta1.Color = Color.Transparent;
319        tekstikentta1.TextColor = Color.White;
320        tekstikentta1.BorderColor = Color.Transparent;
321        tekstikentta1.Font = Font.DefaultLargeBold;
322
323        Label kohta1 = new Label("Takaisin Valikkoon");
324        kohta1.Position = new Vector(0, -80);
325        Add(kohta1);
326
327       
328
329        Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, Valikko
330            , null);
331       
332
333
334        if (Mouse.IsCursorOn(kohta1))
335        {
336            kohta1.TextColor = Color.Red;
337        }
338        else
339        {
340            kohta1.TextColor = Color.White;
341            kohta1.Font = Font.DefaultLargeBold;           
342                Add(tekstikentta1);
343
344            }
345        }
346
347    void lopputeksti2()
348    {
349        ClearAll();
350
351        Camera.ZoomToLevel();
352        Camera.StayInLevel = true;
353        Level.Background.Image = tausta;
354        Level.Background.FitToLevel();
355        Label tekstikentta1 = new Label("Soviet Russia voitti!");
356        tekstikentta1.Color = Color.Transparent;
357        tekstikentta1.TextColor = Color.White;
358        tekstikentta1.BorderColor = Color.Transparent;
359        tekstikentta1.Font = Font.DefaultLargeBold;
360
361        Label kohta1 = new Label("Takaisin Valikkoon");
362        kohta1.Position = new Vector(0, -80);
363        Add(kohta1);
364
365
366
367        Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, Valikko
368            , null);
369
370
371
372        if (Mouse.IsCursorOn(kohta1))
373        {
374            kohta1.TextColor = Color.Red;
375        }
376        else
377        {
378            kohta1.TextColor = Color.White;
379            kohta1.Font = Font.DefaultLargeBold;
380            Add(tekstikentta1);
381
382        }
383    }
384
385    }
386   
387
388
389   
390
Note: See TracBrowser for help on using the repository browser.