source: 2017/24/TomasM/SpaceInvanders/SpaceInvanders/SpaceInvanders/SpaceInvanders.cs @ 10334

Revision 8751, 9.4 KB checked in by npo17_17, 2 years ago (diff)

Torstain PElihommelit ᕕ( ° ʖ °)▄︻̷̿┻̿═━一

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class SpaceInvanders : PhysicsGame
10{
11    IntMeter pistelaskuri;
12    PhysicsObject pelaaja;
13    PhysicsObject pelaaja2;
14
15    PhysicsObject Pahis;
16    public override void Begin()
17    {
18        // TODO: Kirjoita ohjelmakoodisi tähän
19
20        LuoPelaajat();
21        LuoKentta();
22        LuoPahis();
23        LuoKlooni();
24        LuoKlooni();
25        LuoKlooni();
26        LuoKlooni();
27        LuoKlooni();
28        LuoKlooni();
29        LuoPistelaskuri();
30        TormaaTahteen();
31        LuoAikaLaskuri();
32        AsetanNappaimet();
33
34        IsMouseVisible = true;
35
36
37
38
39
40
41
42
43
44    }
45    void LuoKentta()
46    {
47        Level.Width = Screen.Width;
48        Level.Height = Screen.Height;
49        Level.CreateTopBorder();
50        Level.CreateBottomBorder();
51        Level.CreateRightBorder();
52        Level.CreateLeftBorder();
53        Level.Background.Image = LoadImage("tahtitaivas");
54        Level.Background.Size = Screen.Size;
55
56
57
58
59    }
60    void LiikutaPelaajaa(PhysicsObject pelaaja, Vector suunta)
61    {
62
63        pelaaja.Move(suunta);
64        pelaaja.Angle = suunta.Angle - Angle.RightAngle;
65
66
67    }
68
69
70    void AsetanNappaimet()
71    {
72        Keyboard.Listen(Key.A, ButtonState.Down, LiikutaPelaajaa, null, pelaaja, new Vector(-1000, 0));
73        Keyboard.Listen(Key.D, ButtonState.Down, LiikutaPelaajaa, null, pelaaja, new Vector(1000, 0));
74        Keyboard.Listen(Key.W, ButtonState.Down, LiikutaPelaajaa, null, pelaaja,new Vector(0, 1000));
75        Keyboard.Listen(Key.S, ButtonState.Down, LiikutaPelaajaa, null, pelaaja, new Vector(0, -1000));
76
77        Keyboard.Listen(Key.J, ButtonState.Pressed, Tulta, null, pelaaja2, new Vector(-1000, 0));
78        Keyboard.Listen(Key.L, ButtonState.Pressed, Tulta, null, pelaaja2, new Vector(1000, 0));
79        Keyboard.Listen(Key.I, ButtonState.Pressed, Tulta, null, pelaaja2, new Vector(0, 1000));
80        Keyboard.Listen(Key.K, ButtonState.Pressed, Tulta, null, pelaaja2, new Vector(0, -1000));
81
82        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, null, pelaaja2, new Vector(-1000, 0));
83        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, null, pelaaja2, new Vector(1000, 0));
84        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, null, pelaaja2, new Vector(0, 1000));
85        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, null, pelaaja2, new Vector(0, -1000));
86
87        Keyboard.Listen(Key.F, ButtonState.Pressed, Tulta, null, pelaaja, new Vector(-1000, 0));
88        Keyboard.Listen(Key.H, ButtonState.Pressed, Tulta, null, pelaaja, new Vector(1000, 0));
89        Keyboard.Listen(Key.T, ButtonState.Pressed, Tulta, null, pelaaja, new Vector(0, 1000));
90        Keyboard.Listen(Key.G, ButtonState.Pressed, Tulta, null, pelaaja, new Vector(0, -1000));
91
92        Keyboard.Listen(Key.P, ButtonState.Pressed, PysaytaPeli, null);
93        Keyboard.Listen(Key.Z, ButtonState.Pressed, BOOM, null,pelaaja,pelaaja);
94
95        // Mouse.Listen(MouseButton.Left, ButtonState.Pressed, Tulta, null);
96        Keyboard.Listen(Key.R, ButtonState.Pressed, Uusialoitus, null);
97        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
98        Gravity = new Vector(0.0, -1.0);
99    }
100
101
102    void LuoPelaajat()
103    {
104        pelaaja = LuoPelaaja();
105
106        pelaaja2 = LuoPelaaja();
107    }
108    PhysicsObject LuoPelaaja()
109    {
110        PhysicsObject pelaaja = new PhysicsObject(75.0, 75.0);
111        pelaaja.Image = LoadImage("avaruusalus");
112        AddCollisionHandler(pelaaja, "pahapoika", BOOM);
113        pelaaja.Tag = "pelaaja";
114
115        pelaaja.CollisionIgnoreGroup = 1;
116
117        Add(pelaaja);
118
119
120
121        return pelaaja;
122
123    }
124
125
126    void BOOM(PhysicsObject pelaaja, PhysicsObject pahis)
127    {
128        pelaaja.Destroy();
129        Explosion rajahdys = new Explosion(900);
130        rajahdys.Position = pelaaja.Position;
131        Add(rajahdys);
132     
133    }
134
135    void LuoPahis()
136    { //
137      //Pahis = new PhysicsObject(75.0, 75.0);
138      //
139      //Add(Pahis);
140      //Pahis.Image = LoadImage("ufokuva2");
141      //Pahis.X = -300.0;
142      //      Pahis.Y = 100.0;
143      //
144      //
145
146    }
147
148
149
150    void LuoKlooni()
151    {
152        PhysicsObject asteroidi = new PhysicsObject(100.0, 100.0);
153        asteroidi.Image = LoadImage("Asteroidi");
154        // do
155        //{
156        //    asteroidi.X = RandomGen.NextDouble(Level.Left, Level.Right);
157        //    asteroidi.Y = -RandomGen.NextDouble(Level.Top, Level.Bottom);
158        //} while (Math.Abs(asteroidi.X - pelaaja.X) > 500 || Math.Abs(asteroidi.Y - pelaaja.Y) > 500);
159
160        Vector paikka;
161        do
162        {
163            paikka = RandomGen.NextVector(Level.Left, Level.Bottom, Level.Right, Level.Top);
164        } while (Vector.Distance(pelaaja.Position, paikka) < 200 || Vector.Distance(pelaaja2.Position, paikka) < 200);
165        asteroidi.Position = paikka;
166
167        asteroidi.Tag = "pahapoika";
168        Add(asteroidi);
169        FollowerBrain seuraajanAivot = new FollowerBrain("pelaaja");
170        asteroidi.Brain = seuraajanAivot;
171        seuraajanAivot.Speed = 20.0;
172
173    }
174    void LuoPistelaskuri()
175    {
176        // pistelaskuri = new IntMeter(0);
177        // Label pisteNaytto = new Label();
178        // pisteNaytto.X = Screen.Left + 100;
179        //         pisteNaytto.Y = Screen.Top - 100;
180        // pisteNaytto.TextColor = Color.Black;
181        // pisteNaytto.Color = Color.White;
182        // pisteNaytto.BindTo(pistelaskuri);
183        // Add(pisteNaytto);
184        // pistelaskuri.Value++;
185
186
187    }
188    void TormaaTahteen()
189    {
190        // PhysicsObject tahti = new PhysicsObject(150.0, 150.0);
191        // tahti.Image = LoadImage("tahti");
192        // tahti.X = -414.0;
193        // tahti.Y = 345.0;
194        // Add(tahti);
195        // pistelaskuri.Value++;
196
197        //hahmo.Destroy();
198
199
200
201    }
202    void Tulta(PhysicsObject pelaaja, Vector suunta)
203    {
204        PhysicsObject ammus = new PhysicsObject(5, 5);
205        ammus.Position = pelaaja.Position;
206        //Vector suunta = Mouse.PositionOnScreen - pelaaja.Position;
207        ammus.Velocity = suunta * 10;
208        //ammus.IgnoresCollisionWith(pelaaja);
209        ammus.CollisionIgnoreGroup = 1;
210        ammus.MaximumLifetime = new TimeSpan(0, 0, 0, 5);
211        Add(ammus);
212
213         
214    }
215    void LuoAikaLaskuri()
216    {
217        Timer aikaLaskuri = new Timer();
218        aikaLaskuri.Interval = 30;
219        aikaLaskuri.Timeout += AikaLoppui;
220
221aikaLaskuri.Start(1);
222
223        Label aikaNaytto = new Label();
224        aikaNaytto.TextColor = Color.White;
225        aikaNaytto.DecimalPlaces = 1;
226        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
227        Add(aikaNaytto);
228    }
229    void LuoAikaLaskuri1()
230    {
231        Timer aikaLaskuri = new Timer();
232        aikaLaskuri.Interval = 30;
233        aikaLaskuri.Timeout += AikaLoppui1;
234
235        aikaLaskuri.Start(1);
236
237        Label aikaNaytto = new Label();
238        aikaNaytto.TextColor = Color.White;
239        aikaNaytto.DecimalPlaces = 1;
240        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
241        Add(aikaNaytto);
242    }
243    void LuoAikaLaskuri2()
244    {
245        Timer aikaLaskuri = new Timer();
246        aikaLaskuri.Interval = 30;
247        aikaLaskuri.Timeout += AikaLoppui;
248
249        aikaLaskuri.Start(1);
250
251        Label aikaNaytto = new Label();
252        aikaNaytto.TextColor = Color.White;
253        aikaNaytto.DecimalPlaces = 1;
254        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
255        Add(aikaNaytto);
256    }
257
258    void AikaLoppui()
259    {
260        ClearAll();
261        LuoKentta();
262   
263        LuoPelaaja();
264        LuoPelaajat();
265        // LuoKentta();
266        LuoKlooni();
267        LuoKlooni();
268        LuoKlooni();
269        LuoKlooni();
270        LuoKlooni();
271        LuoKlooni();
272        LuoKlooni();
273        LuoKlooni();
274        LuoKlooni();
275        LuoKlooni();
276        LuoKlooni();
277        LuoKlooni();
278        LuoKlooni();
279        LuoKlooni();
280        LuoKlooni();
281        LuoKlooni();
282        LuoKlooni();
283        LuoKlooni();
284        LuoKlooni();
285        LuoKlooni();
286        LuoKlooni();
287        LuoKlooni();
288        LuoKlooni();
289        LuoKlooni();
290        LuoAikaLaskuri1();
291        AsetanNappaimet();
292    }
293    void AikaLoppui1()
294    {
295        ClearAll();
296        LuoKentta();
297
298        LuoPelaaja();
299        LuoPelaajat();
300        // LuoKentta();
301        LuoKlooni();
302        LuoKlooni();
303        LuoKlooni();
304        LuoKlooni();
305        LuoKlooni();
306        LuoKlooni();
307        LuoKlooni();
308        LuoKlooni();
309        LuoKlooni();
310        LuoKlooni();
311        LuoKlooni();
312        LuoKlooni();
313        LuoKlooni();
314        LuoKlooni();
315        LuoKlooni();
316        LuoKlooni();
317        LuoKlooni();
318        LuoKlooni();
319        LuoKlooni();
320        LuoKlooni();
321        LuoKlooni();
322        LuoKlooni();
323        LuoKlooni();
324        LuoKlooni();
325        LuoAikaLaskuri2();
326        AsetanNappaimet();
327    }
328
329    void Uusialoitus()
330    {
331
332
333        LuoAikaLaskuri();
334        LuoKentta();
335        AsetanNappaimet();
336        LuoPelaaja();
337        LuoKlooni();
338        LuoKlooni();
339        LuoKlooni();
340        LuoKlooni();
341        LuoKlooni();
342        LuoKlooni();
343
344
345    }
346    void PysaytaPeli()
347    {
348        Pause();
349
350
351
352    }
353}
Note: See TracBrowser for help on using the repository browser.