source: 2011/26/HenriH/Alien Empire/Alien Empire/Alien Empire/Peli.cs @ 2369

Revision 2369, 9.2 KB checked in by jahebahu, 12 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 Peli : PhysicsGame
10{
11
12    Image taustakuva = LoadImage("SpaceJAText_Modified");
13    Image taustakuva2 = LoadImage("Space 1");
14    List<Label> valikonKohdat;
15    PhysicsObject alus1;
16    PhysicsObject alus2;
17    Image olionkuva = LoadImage("alus1");
18    Image olionkuva2 = LoadImage("alus2");
19    Image kiihdytys1 = LoadImage("alus1_kaasuttaa");
20    Image kiihdytys2 = LoadImage("alus2_kaasuttaa");
21    Image plasma_ammus1 = LoadImage("plasma");
22    Image plasma_ammus2 = LoadImage("plasma2");
23    AssaultRifle Plasma1;
24    AssaultRifle Plasma2;
25    ExplosionSystem rajahdys;
26    public override void Begin()
27    {
28        // TODO: Kirjoita ohjelmakoodisi tähän
29        Valikko();
30       
31    }
32
33    void Valikko()
34    {
35        ClearAll();
36        valikonKohdat = new List<Label>();
37
38        IsFullScreen = true;
39        Level.Background.Image = taustakuva;
40        Level.Background.FitToLevel();
41        Camera.ZoomToLevel();
42
43        Label kohta1 = new Label("Aloita uusi peli");
44        kohta1.Position = new Vector(0, -80);
45        valikonKohdat.Add(kohta1);
46
47        Label kohta2 = new Label("Lopeta");
48        kohta2.Position = new Vector(0, -160);
49        valikonKohdat.Add(kohta2);
50
51        foreach (Label valikonKohta in valikonKohdat)
52        {
53            Add(valikonKohta);
54        }
55
56        Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, AloitaPeli, null);
57        Mouse.ListenOn(kohta2, MouseButton.Left, ButtonState.Pressed, Exit, null);
58
59        Mouse.IsCursorVisible = true;
60        Mouse.ListenMovement(1.0, ValikossaLiikkuminen, null);
61        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "");
62
63    }
64    void ValikossaLiikkuminen(AnalogState Hiirentila)
65    {
66        foreach (Label kohta in valikonKohdat)
67        {
68            if (Mouse.IsCursorOn(kohta))
69            {
70                kohta.TextColor = Color.Red;
71            }
72            else
73            {
74                kohta.TextColor = Color.White;
75                kohta.Font = Font.DefaultLargeBold;
76            }
77        }
78    }
79
80    void AloitaPeli()
81    {
82        ClearAll();
83        // Tähän tulee kaikki kentän luomiset ym. alustukset...
84       
85        Camera.ZoomToLevel();
86        Level.Background.Image = taustakuva2;
87        Level.Background.FitToLevel();
88        Level.CreateBorders();
89        alus1 = new PhysicsObject(50.0, 50.0);
90        alus1.Tag = "Alus1";
91       
92        alus1.X = 300;
93        alus1.Y = 150;
94       
95        alus1.Image = olionkuva;
96       
97        alus1.AngularDamping = 0.50;
98       
99        alus1.Restitution = 0.2;
100       
101        alus1.CollisionIgnoreGroup = 1;
102       
103        LuoLaskuri();
104        LuoLaskuri1();
105        LuoAlus2();
106        LuoAlus1();
107
108        Plasma1 = new AssaultRifle(20, 5);
109        Plasma2 = new AssaultRifle(20, 5);
110        alus1.Add(Plasma1);
111        alus2.Add(Plasma2);
112        Plasma1.ProjectileCollision = AmmusOsui;
113        Plasma2.ProjectileCollision = AmmusOsui2;
114        rajahdys = new ExplosionSystem(LoadImage("special"), 150);
115    Add(rajahdys);
116
117       
118
119        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Valikko, "Palaa valikkoon");
120        Keyboard.Listen(Key.Up, ButtonState.Down, kiihdytaalus, "Kiihdytä alusta 1", alus1);
121        Keyboard.Listen(Key.Up, ButtonState.Released, ajaalus, null, alus1);
122        Keyboard.Listen(Key.Left, ButtonState.Down, kaannaalus, "Käännä alusta 1 Vasemmalle.", alus1);
123        Keyboard.Listen(Key.Right, ButtonState.Down, kaannaalus2, "Käännä alusta 1 Oikealle.", alus1);
124        Keyboard.Listen(Key.A, ButtonState.Down, kaannaalus3, "Käännä alusta 2 Vasemmalle.", alus2);
125        Keyboard.Listen(Key.W, ButtonState.Down, kiihdytaalus2, "Kiihdytä alusta 2", alus2);
126        Keyboard.Listen(Key.W, ButtonState.Released, ajaalus2, null, alus2);
127        Keyboard.Listen(Key.D, ButtonState.Down, kaannaalus4, "Käännä alusta Oikealle.", alus2);
128        Keyboard.Listen(Key.RightShift, ButtonState.Down, AmmuAseella, "Ammu pelaajan 1 asetta", Plasma1, alus1);
129        Keyboard.Listen(Key.LeftShift, ButtonState.Down, AmmuAseella2, "Ammu Pelaajan 2 asetta", Plasma2, alus2);
130
131
132       
133    }
134    void kiihdytaalus(PhysicsObject alus)
135    {
136        alus.Image = kiihdytys1;
137        Vector voima = Vector.FromLengthAndAngle(1000, alus.Angle);
138        alus.Push(voima);
139    }
140
141    void ajaalus(PhysicsObject alus)
142    {
143        alus.Image = olionkuva;
144    }
145    void kaannaalus(PhysicsObject alus)
146    {
147        alus.Angle += Angle.FromDegrees(5);
148     
149    }
150    void kaannaalus2(PhysicsObject alus)
151    {
152        alus.Angle -= Angle.FromDegrees(5);
153    }
154    void kaannaalus3(PhysicsObject alus2)
155    {
156        alus2.Angle += Angle.FromDegrees(5);
157    }
158
159        void kaannaalus4(PhysicsObject alus2)
160    {
161        alus2.Angle -= Angle.FromDegrees(5);
162    }
163    void ajaalus2(PhysicsObject alus2)
164    {
165        alus2.Image = olionkuva2;
166    }
167    void kiihdytaalus2(PhysicsObject alus2)
168    {
169        alus2.Image = kiihdytys2;
170        Vector voima = Vector.FromLengthAndAngle(1000, alus2.Angle);
171        alus2.Push(voima);
172    }
173    void AmmuAseella(Weapon Plasma1, PhysicsObject alus)
174    {
175        PhysicsObject ammus = Plasma1.Shoot();
176
177       
178
179        if (ammus != null)
180        {
181            ammus.Size *= 2;
182            ammus.Image = plasma_ammus1;
183            Plasma1.Ammo.Value = 3000;
184
185            ammus.CollisionIgnoreGroup = alus.CollisionIgnoreGroup;
186        }
187    }
188
189    void AmmusOsui(PhysicsObject Ammus, PhysicsObject kohde)
190    {
191        if (kohde.Tag.ToString() == "Alus2")
192        {
193          rajahdys.AddEffect(Ammus.Position, 20);
194          elamalaskuri2.Value -= 10;
195        }
196
197        if (elamalaskuri2.Value<=0)
198        {
199
200            Remove(alus2);
201            elamalaskuri2.Value = 100;
202            //LuoAlus2();
203            Timer.SingleShot(3.0, ajastinlaukesi);
204            kuolemalaskuri.Value -= 1;
205        }
206
207        Ammus.Destroy();
208    }
209
210    void AmmuAseella2(Weapon Plasma2, PhysicsObject alus2)
211    {
212        PhysicsObject ammus = Plasma2.Shoot();
213
214
215
216        if (ammus != null)
217        {
218            ammus.Size *= 2;
219            ammus.Image = plasma_ammus1;
220            Plasma2.Ammo.Value = 3000;
221
222            ammus.CollisionIgnoreGroup = alus2.CollisionIgnoreGroup;
223        }
224    }
225
226    void AmmusOsui2(PhysicsObject Ammus, PhysicsObject kohde)
227    {
228        if (kohde.Tag.ToString() == "Alus1")
229        {
230            rajahdys.AddEffect(Ammus.Position, 20);
231            elamalaskuri1.Value -= 10;
232        }
233
234        if (elamalaskuri1.Value <= 0)
235        {
236
237            Remove(alus1);
238            elamalaskuri1.Value = 100;
239            Timer.SingleShot(3.0, ajastinlaukesi2);
240        }
241
242        Ammus.Destroy();
243    }
244   
245   
246    IntMeter elamalaskuri2;
247
248    void LuoLaskuri()
249    {
250        elamalaskuri2 = new IntMeter(100);
251
252        Label pisteNaytto = new Label();
253        pisteNaytto.X = Screen.Right - 100;
254        pisteNaytto.Y = Screen.Top - 100;
255        pisteNaytto.TextColor = Color.White;
256
257       
258        pisteNaytto.BindTo(elamalaskuri2);
259        Add(pisteNaytto);
260    }
261    void LuoAlus2()
262    {
263        alus2 = new PhysicsObject(50.0, 50.0);
264        alus2.Tag = "Alus2"; 
265        alus2.X = 150;
266        alus2.Y = 300;
267        alus2.Image = olionkuva2;
268        alus2.AngularDamping = 0.50;
269        alus2.Restitution = 0.2;
270        alus2.CollisionIgnoreGroup = 2;
271        Add(alus2);
272    }
273    void ajastinlaukesi()
274    {
275        Add(alus2);
276    }
277
278    IntMeter elamalaskuri1;
279
280    void LuoLaskuri1()
281    {
282        elamalaskuri1 = new IntMeter(100);
283
284        Label pisteNaytto = new Label();
285        pisteNaytto.X = Screen.Left + 100;
286        pisteNaytto.Y = Screen.Top - 100;
287        pisteNaytto.TextColor = Color.White;
288
289
290        pisteNaytto.BindTo(elamalaskuri1);
291        Add(pisteNaytto);
292    }
293    void LuoAlus1()
294    {
295        alus1 = new PhysicsObject(50.0, 50.0);
296        alus1.Tag = "Alus1";
297        alus1.X = 300;
298        alus1.Y = 150;
299        alus1.Image = olionkuva;
300        alus1.AngularDamping = 0.50;
301        alus1.Restitution = 0.2;
302        alus1.CollisionIgnoreGroup = 1;
303        Add(alus1);
304    }
305    void ajastinlaukesi2()
306    {
307        Add(alus1);
308    }
309
310    IntMeter kuolemalaskuri;
311
312    void laskuri3()
313    {
314        kuolemalaskuri = new IntMeter(5);
315
316        Label pisteNaytto = new Label();
317        pisteNaytto.X = Screen.Left + 50;
318        pisteNaytto.Y = Screen.Top - 100;
319        pisteNaytto.TextColor = Color.White;
320
321        pisteNaytto.BindTo(kuolemalaskuri);
322        Add(pisteNaytto);
323
324        if (kuolemalaskuri.Value <= 0)
325        {
326            Lopputeksti1();
327        }}
328        void Lopputeksti1()
329            {
330                Level.Background.Image = taustakuva;
331                Label tekstikentta = new Label(50.0, 20.0, "Pelaaja 1, sinä voitit! Pelaaja 2, hävisit, olet surkea.");
332                Add(tekstikentta);
333            }
334        }
335   
Note: See TracBrowser for help on using the repository browser.