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

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