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

Revision 2972, 9.4 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 olio1 = LoadImage("alus1");
15    Image alus1kaasuttaa = LoadImage("alus1kaasuttaa");
16    Image olio2 = LoadImage("alus2");
17    Image alus2kaasuttaa = LoadImage("alus2kaasuttaa");
18    Image plasma1 = LoadImage("plasmaammus1");
19    Image plasma2 = LoadImage("plasmaammus2");
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        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "");
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        alus1 = new PhysicsObject(50.0, 50.0);
85        alus1.Tag = "Alus1";
86        // Tähän tulee biisi MediaPlayer.Play("nimi");
87
88        alus1.X = -300;
89        alus1.Y = -150;
90        alus1.Image = olio1;
91
92        alus1.AngularDamping = 0.50;
93
94        alus1.Restitution = 0.2;
95
96        alus1.CollisionIgnoreGroup = 1;
97        laskuri3();
98        laskuri4();
99        LuoLaskuri();
100        LuoLaskuri1();
101        //LuoAlus2();
102        //LuoAlus1();
103
104        Plasma1 = new AssaultRifle(20, 5);
105        Plasma2 = new AssaultRifle(20, 5);
106        alus1.Add(Plasma1);
107        alus2.Add(Plasma2);
108        Plasma1.ProjectileCollision = AmmusOsui;
109        Plasma2.ProjectileCollision = AmmusOsui2;
110        rajahdys = new ExplosionSystem(LoadImage("special"), 150);
111        Add(rajahdys);
112
113
114
115
116
117
118
119
120
121
122
123
124
125        //Keyboard.Listen(Key.Escape, ButtonState.Pressed, Valikko, "Palaa valikkoon");
126        //ehkä tulevia keyboard commandeja
127        Keyboard.Listen(Key.Up, ButtonState.Down, kiihdytaalus, "Kiihdytä alusta 1", alus1);
128        Keyboard.Listen(Key.Up, ButtonState.Released, ajaalus, null, alus1);
129        Keyboard.Listen(Key.Left, ButtonState.Down, kaannaalus, "Käännä alusta 1 Vasemmalle.", alus1);
130        Keyboard.Listen(Key.Right, ButtonState.Down, kaannaalus2, "Käännä alusta 1 Oikealle.", alus1);
131        Keyboard.Listen(Key.A, ButtonState.Down, kaannaalus3, "Käännä alusta 2 Vasemmalle.", alus2);
132        //Keyboard.Listen(Key.W, ButtonState.Down, kiihdytaalus2, "Kiihdytä alusta 2", alus2);
133        //Keyboard.Listen(Key.W, ButtonState.Released, ajaalus2, null, alus2);
134        Keyboard.Listen(Key.D, ButtonState.Down, kaannaalus4, "Käännä alusta Oikealle.", alus2);
135        //Keyboard.Listen(Key.RightControl, ButtonState.Down, AmmuAseella, "Ammu pelaajan 1 asetta", Plasma1, alus1);
136        //Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella2, "Ammu Pelaajan 2 asetta", Plasma2, alus2);
137
138    }
139    void LuoAlus1()
140    {
141        alus1 = new PhysicsObject(50.0, 50.0);
142        alus1.Tag = "Alus1";
143        alus1.X = 300;
144        alus1.Y = 150;
145        alus1.Image = olio1;
146        alus1.AngularDamping = 0.50;
147        alus1.Restitution = 0.2;
148        alus1.CollisionIgnoreGroup = 1;
149        Add(alus1);
150    }
151    void LuoAlus2()
152    {
153        alus2 = new PhysicsObject(50.0, 50.0);
154        alus2.Tag = "Alus2";
155        alus2.X = 150;
156        alus2.Y = 300;
157        alus2.Image = olio2;
158        alus2.AngularDamping = 0.50;
159        alus2.Restitution = 0.2;
160        alus2.CollisionIgnoreGroup = 2;
161        Add(alus2);
162    }
163
164    void kiihdytaalus(PhysicsObject alus)
165    {
166        alus.Image = alus1kaasuttaa;
167        Vector voima = Vector.FromLengthAndAngle(1000, alus.Angle);
168        alus.Push(voima);
169    }
170    void ajaalus(PhysicsObject alus)
171    {
172        alus.Image = olio1;
173    }
174    void kaannaalus(PhysicsObject alus)
175    {
176        alus.Angle += Angle.FromDegrees(5);
177    }
178    void kaannaalus2(PhysicsObject alus)
179    {
180        alus.Angle -= Angle.FromDegrees(5);
181    }
182    void kaannaalus3(PhysicsObject alus2)
183    {
184        alus2.Angle += Angle.FromDegrees(5);
185    }
186    void kaannaalus4(PhysicsObject alus2)
187    {
188        alus2.Angle -= Angle.FromDegrees(5);
189    }
190    void ajaalus2(PhysicsObject alus2)
191    {
192        alus2.Image = olio2;
193    }
194    void kiihdytaalus2(PhysicsObject alus2)
195    {
196        alus2.Image = alus2kaasuttaa;
197        Vector voima = Vector.FromLengthAndAngle(1000, alus2.Angle);
198        alus2.Push(voima);
199    }
200    void AmmuAseella(Weapon Plasma1, PhysicsObject alus)
201    {
202        PhysicsObject ammus = Plasma1.Shoot();
203
204        if (ammus != null)
205        {
206            ammus.Size *= 2;
207            ammus.Image = plasma1;
208            Plasma1.Ammo.Value = 3000;
209
210            ammus.CollisionIgnoreGroup = alus.CollisionIgnoreGroup;
211
212        }
213    }
214    void AmmusOsui(PhysicsObject Ammus, PhysicsObject kohde)
215    {
216        if (kohde.Tag.ToString() == "alus2")
217        {
218            rajahdys.AddEffect(Ammus.Position, 20);
219        }
220        if (elamalaskuri1.Value <= 0)
221        {
222            Remove(alus2);
223            elamalaskuri1.Value = 100;
224            Timer.SingleShot(3.0, ajastinlaukesi);
225            kuolemalaskuri1.Value -= 1;
226            if (kuolemalaskuri1.Value <= 0)
227            {
228                //Lopputeksti1();
229            }
230        }
231        Ammus.Destroy();
232    }
233    void AmmuAseella2(Weapon Plasma2, PhysicsObject alus2)
234    {
235        PhysicsObject ammus = Plasma2.Shoot();
236
237
238
239        if (ammus != null)
240        {
241            ammus.Size *= 2;
242            ammus.Image = plasma1;
243            Plasma2.Ammo.Value = 3000;
244
245            ammus.CollisionIgnoreGroup = alus2.CollisionIgnoreGroup;
246        }
247    }
248
249    void AmmusOsui2(PhysicsObject Ammus, PhysicsObject kohde)
250    {
251        if (kohde.Tag.ToString() == "Alus1")
252        {
253            rajahdys.AddEffect(Ammus.Position, 20);
254            elamalaskuri2.Value -= 10;
255        }
256
257        if (elamalaskuri2.Value <= 0)
258        {
259
260            Remove(alus1);
261            elamalaskuri2.Value = 100;
262            //Add(alus2);
263            Timer.SingleShot(3.0, ajastinlaukesi2);
264            kuolemalaskuri2.Value -= 1;
265            if (kuolemalaskuri2.Value <= 0)
266            {
267                //Lopputeksti2();
268            }
269        }
270
271        Ammus.Destroy();
272    }
273    IntMeter elamalaskuri2;
274
275    void LuoLaskuri()
276    {
277        elamalaskuri2 = new IntMeter(100);
278
279        Label pisteNaytto = new Label();
280        pisteNaytto.X = Screen.Right - 100;
281        pisteNaytto.Y = Screen.Top - 100;
282        pisteNaytto.TextColor = Color.White;
283
284
285        pisteNaytto.BindTo(elamalaskuri2);
286        Add(pisteNaytto);
287    }
288    IntMeter elamalaskuri1;
289
290    void LuoLaskuri1()
291    {
292        elamalaskuri1 = new IntMeter(100);
293
294        Label pisteNaytto = new Label();
295        pisteNaytto.X = Screen.Left + 100;
296        pisteNaytto.Y = Screen.Top - 100;
297        pisteNaytto.TextColor = Color.White;
298
299
300        pisteNaytto.BindTo(elamalaskuri1);
301        Add(pisteNaytto);
302    }
303    void ajastinlaukesi()
304    {
305        Add(alus2);
306    }
307    void ajastinlaukesi2()
308    {
309        Add(alus1);
310    }
311    IntMeter kuolemalaskuri1;
312
313    void laskuri3()
314    {
315        kuolemalaskuri1 = new IntMeter(5);
316
317        Label pisteNaytto = new Label();
318        pisteNaytto.X = Screen.Left + 50;
319        pisteNaytto.Y = Screen.Top - 100;
320        pisteNaytto.TextColor = Color.White;
321        pisteNaytto.BindTo(kuolemalaskuri1);
322        Add(pisteNaytto);
323    }
324    IntMeter kuolemalaskuri2;
325
326    void laskuri4()
327    {
328        kuolemalaskuri2 = new IntMeter(5);
329
330        Label pisteNaytto = new Label();
331        pisteNaytto.X = Screen.Right - 50;
332        pisteNaytto.Y = Screen.Top - 100;
333        pisteNaytto.TextColor = Color.White;
334        pisteNaytto.BindTo(kuolemalaskuri2);
335        Add(pisteNaytto);
336
337    }
338}
339   
340
Note: See TracBrowser for help on using the repository browser.