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

Revision 8682, 6.9 KB checked in by npo17_17, 2 years ago (diff)
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 Pahis;
14    public override void Begin()
15    {
16        // TODO: Kirjoita ohjelmakoodisi tähän
17     
18        LuoPelaaja();
19        LuoKentta();
20        LuoPahis();
21        LuoKlooni();
22        LuoKlooni();
23        LuoKlooni();
24        LuoKlooni();
25        LuoKlooni();
26        LuoKlooni();
27        LuoPistelaskuri();
28        TormaaTahteen();
29        LuoAikaLaskuri();
30        AsetanNappaimet();
31       
32        IsMouseVisible = true;
33
34
35       
36   
37
38
39       
40       
41     
42    }void LuoKentta()
43    {
44Level.Width = Screen.Width;
45        Level.Height = Screen.Height;
46        Level.CreateTopBorder();
47        Level.CreateBottomBorder();
48        Level.CreateRightBorder();
49        Level.CreateLeftBorder();
50        Level.Background.Image = LoadImage("tahtitaivas");
51        Level.Background.Size = Screen.Size;
52   
53
54
55
56    }
57    void LiikutaPelaajaa(Vector suunta)
58    {
59
60        pelaaja.Move(suunta);
61        pelaaja.Angle = suunta.Angle - Angle.RightAngle;
62
63       
64    }
65
66
67    void AsetanNappaimet()
68    {
69        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-1000, 0));
70        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, null, new Vector(1000, 0));
71        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 1000));
72        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -1000));
73
74        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, Tulta, null);
75
76        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
77        Gravity = new Vector(0.0, -4.0);
78    }
79   
80       
81       
82       
83        void LuoPelaaja()
84    { 
85        pelaaja = new PhysicsObject(75.0, 75.0);
86        pelaaja.Image = LoadImage("avaruusalus");
87        AddCollisionHandler(pelaaja, "pahapoika", BOOM);
88       
89
90        pelaaja.CollisionIgnoreGroup = 1;
91
92        Add(pelaaja);
93
94
95
96       
97
98    }
99   
100    void BOOM(PhysicsObject pelaaja, PhysicsObject pahis)
101    {
102        pelaaja.Destroy();
103        IsPaused = true;
104
105
106    }
107       void LuoPahis()
108    { //
109      //Pahis = new PhysicsObject(75.0, 75.0);
110      //
111      //Add(Pahis);
112      //Pahis.Image = LoadImage("ufokuva2");
113      //Pahis.X = -300.0;
114      //      Pahis.Y = 100.0;
115      //
116      //
117
118    }
119   
120   
121
122    void LuoKlooni()
123    {
124        PhysicsObject asteroidi = new PhysicsObject(100.0, 100.0);
125        asteroidi.Image = LoadImage("Asteroidi");
126        asteroidi.X = RandomGen.NextDouble(Level.Left,Level.Right);
127        asteroidi.Y = -RandomGen.NextDouble(Level.Top, Level.Bottom);
128        asteroidi.Tag = "pahapoika";
129        Add(asteroidi);
130
131    }
132    void LuoPistelaskuri()
133    {
134      // pistelaskuri = new IntMeter(0);
135      // Label pisteNaytto = new Label();
136      // pisteNaytto.X = Screen.Left + 100;
137      //         pisteNaytto.Y = Screen.Top - 100;
138      // pisteNaytto.TextColor = Color.Black;
139      // pisteNaytto.Color = Color.White;
140      // pisteNaytto.BindTo(pistelaskuri);
141      // Add(pisteNaytto);
142      // pistelaskuri.Value++;
143
144
145    }
146     void TormaaTahteen()
147    {
148     // PhysicsObject tahti = new PhysicsObject(150.0, 150.0);
149     // tahti.Image = LoadImage("tahti");
150     // tahti.X = -414.0;
151     // tahti.Y = 345.0;
152     // Add(tahti);
153     // pistelaskuri.Value++;
154
155        //hahmo.Destroy();
156
157       
158
159    }
160    void Tulta()
161    {
162        PhysicsObject ammus = new PhysicsObject(5,5);
163        ammus.Position = pelaaja.Position;
164        Vector suunta = Mouse.PositionOnScreen - pelaaja.Position;
165        ammus.Velocity = suunta * 10;
166        //ammus.IgnoresCollisionWith(pelaaja);
167        ammus.CollisionIgnoreGroup = 1;
168        ammus.MaximumLifetime = new TimeSpan(0, 0, 0,5);
169        Add(ammus);
170
171
172    }
173    void LuoAikaLaskuri()
174    {
175        Timer aikaLaskuri = new Timer();
176        aikaLaskuri.Interval = 30;
177        aikaLaskuri.Timeout += AikaLoppui;
178     
179        aikaLaskuri.Start(1);
180
181        Label aikaNaytto = new Label();
182        aikaNaytto.TextColor = Color.White;
183        aikaNaytto.DecimalPlaces = 1;
184        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
185        Add(aikaNaytto);
186    }
187    void LuoAikaLaskuri1()
188    {
189        Timer aikaLaskuri = new Timer();
190        aikaLaskuri.Interval = 30;
191        aikaLaskuri.Timeout += AikaLoppui1;
192
193        aikaLaskuri.Start(1);
194
195        Label aikaNaytto = new Label();
196        aikaNaytto.TextColor = Color.White;
197        aikaNaytto.DecimalPlaces = 1;
198        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
199        Add(aikaNaytto);
200    }
201    void LuoAikaLaskuri2()
202    {
203        Timer aikaLaskuri = new Timer();
204        aikaLaskuri.Interval = 30;
205        aikaLaskuri.Timeout += AikaLoppui;
206
207        aikaLaskuri.Start(1);
208
209        Label aikaNaytto = new Label();
210        aikaNaytto.TextColor = Color.White;
211        aikaNaytto.DecimalPlaces = 1;
212        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
213        Add(aikaNaytto);
214    }
215
216    void AikaLoppui()
217    {
218        ClearAll();
219        LuoKentta();
220        AsetanNappaimet();
221        LuoPelaaja();
222       // LuoKentta();
223        LuoKlooni();
224        LuoKlooni();
225        LuoKlooni();
226        LuoKlooni();
227        LuoKlooni();
228        LuoKlooni();
229        LuoKlooni();
230        LuoKlooni();
231        LuoKlooni();
232        LuoKlooni();
233        LuoKlooni();
234        LuoKlooni();
235        LuoKlooni();
236        LuoKlooni();
237        LuoKlooni();
238        LuoKlooni();
239        LuoKlooni();
240        LuoKlooni();
241        LuoKlooni();
242        LuoKlooni();
243        LuoKlooni();
244        LuoKlooni();
245        LuoKlooni();
246        LuoKlooni();
247        LuoAikaLaskuri();
248    }
249    void AikaLoppui1()
250    {
251        ClearAll();
252        LuoKentta();
253        AsetanNappaimet();
254        LuoPelaaja();
255        // LuoKentta();
256        LuoKlooni();
257        LuoKlooni();
258        LuoKlooni();
259        LuoKlooni();
260        LuoKlooni();
261        LuoKlooni();
262        LuoKlooni();
263        LuoKlooni();
264        LuoKlooni();
265        LuoKlooni();
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        LuoKlooni();
291        LuoKlooni();
292        LuoAikaLaskuri2();
293    }
294}
Note: See TracBrowser for help on using the repository browser.