1 | using System; |
---|
2 | using System.Collections.Generic; |
---|
3 | using Jypeli; |
---|
4 | using Jypeli.Assets; |
---|
5 | using Jypeli.Controls; |
---|
6 | using Jypeli.Effects; |
---|
7 | using Jypeli.Widgets; |
---|
8 | |
---|
9 | |
---|
10 | //Miro Aurela: GravityGame |
---|
11 | |
---|
12 | public class Peli : PhysicsGame |
---|
13 | { |
---|
14 | |
---|
15 | const double nopeus = 200; |
---|
16 | const double hyppyNopeus = 1000; |
---|
17 | const int RUUDUN_KOKO = 40; |
---|
18 | |
---|
19 | Timer aikaLaskuri; |
---|
20 | |
---|
21 | PhysicsObject pelaaja1; |
---|
22 | |
---|
23 | PhysicsObject piikkia; |
---|
24 | PhysicsObject piikkiy; |
---|
25 | |
---|
26 | Image pelaajanKuva = LoadImage("norsu"); |
---|
27 | |
---|
28 | Image tahtiKuva = LoadImage("tahti"); |
---|
29 | |
---|
30 | int tahtienmaara = 0; |
---|
31 | int mpainovoima = 4; |
---|
32 | int mmakspainovoima = 4; |
---|
33 | int tasonro = 1; |
---|
34 | int makstahdet = 3; |
---|
35 | bool tarkistus = true; |
---|
36 | double aika = 30; |
---|
37 | double pisteet = 0; |
---|
38 | |
---|
39 | SoundEffect maaliAani = LoadSoundEffect("maali"); |
---|
40 | |
---|
41 | ScoreList topLista = new ScoreList(10, false, 0); |
---|
42 | |
---|
43 | DoubleMeter alaspainLaskuri; |
---|
44 | |
---|
45 | List<Label> valikonKohdat; |
---|
46 | Label painovm; |
---|
47 | Label tahdet; |
---|
48 | Label pisteetteksti; |
---|
49 | Label aikaNaytto; |
---|
50 | |
---|
51 | |
---|
52 | public override void Begin() |
---|
53 | { |
---|
54 | Mouse.IsCursorVisible = true; |
---|
55 | if (DataStorage.Exists("pisteet.xml")) |
---|
56 | topLista = DataStorage.Load<ScoreList>(topLista, "pisteet.xml"); |
---|
57 | if (aikaLaskuri != null) aikaLaskuri.Stop(); |
---|
58 | ClearAll(); |
---|
59 | Valikko(); |
---|
60 | } |
---|
61 | |
---|
62 | void Valikko() |
---|
63 | { |
---|
64 | ClearAll(); |
---|
65 | |
---|
66 | valikonKohdat = new List<Label>(); |
---|
67 | |
---|
68 | Label kohta1 = new Label("Aloita uusi peli"); |
---|
69 | kohta1.Position = new Vector(0, 40); |
---|
70 | valikonKohdat.Add(kohta1); |
---|
71 | |
---|
72 | Label kohta3 = new Label("Ennätyslista"); |
---|
73 | kohta3.Position = new Vector(0, -40); |
---|
74 | valikonKohdat.Add(kohta3); |
---|
75 | |
---|
76 | Label kohta4 = new Label("Ohjeet"); |
---|
77 | kohta4.Position = new Vector(0, 0); |
---|
78 | valikonKohdat.Add(kohta4); |
---|
79 | |
---|
80 | Label kohta2 = new Label("Poistu"); |
---|
81 | kohta2.Position = new Vector(0, -80); |
---|
82 | valikonKohdat.Add(kohta2); |
---|
83 | |
---|
84 | foreach (Label valikonKohta in valikonKohdat) |
---|
85 | { |
---|
86 | Add(valikonKohta); |
---|
87 | } |
---|
88 | |
---|
89 | Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, AloitaPeli, null); |
---|
90 | Mouse.ListenOn(kohta2, MouseButton.Left, ButtonState.Pressed, Lopeta, null); |
---|
91 | Mouse.ListenOn(kohta3, MouseButton.Left, ButtonState.Pressed, lista, null); |
---|
92 | Mouse.ListenOn(kohta4, MouseButton.Left, ButtonState.Pressed, ohjeet, null); |
---|
93 | |
---|
94 | Mouse.IsCursorVisible = true; |
---|
95 | Mouse.ListenMovement(1.0, ValikossaLiikkuminen, null); |
---|
96 | Keyboard.Listen(Key.Escape, ButtonState.Pressed, Lopeta, ""); |
---|
97 | } |
---|
98 | |
---|
99 | void ValikossaLiikkuminen(AnalogState hiirenTila) |
---|
100 | { |
---|
101 | foreach (Label kohta in valikonKohdat) |
---|
102 | { |
---|
103 | if (Mouse.IsCursorOn(kohta)) |
---|
104 | { |
---|
105 | kohta.TextColor = Color.Green; |
---|
106 | } |
---|
107 | else |
---|
108 | { |
---|
109 | kohta.TextColor = Color.Black; |
---|
110 | } |
---|
111 | |
---|
112 | } |
---|
113 | |
---|
114 | |
---|
115 | } |
---|
116 | |
---|
117 | void lista() |
---|
118 | { |
---|
119 | ClearAll(); |
---|
120 | |
---|
121 | valikonKohdat = new List<Label>(); |
---|
122 | |
---|
123 | Label kohta1 = new Label("Näytä ennätyslista"); |
---|
124 | kohta1.Position = new Vector(0, 40); |
---|
125 | valikonKohdat.Add(kohta1); |
---|
126 | |
---|
127 | Label kohta3 = new Label("Poistu"); |
---|
128 | kohta3.Position = new Vector(0, -40); |
---|
129 | valikonKohdat.Add(kohta3); |
---|
130 | |
---|
131 | Label kohta2 = new Label("Tyhjennä ennätyslista"); |
---|
132 | kohta2.Position = new Vector(0, 0); |
---|
133 | valikonKohdat.Add(kohta2); |
---|
134 | |
---|
135 | |
---|
136 | foreach (Label valikonKohta in valikonKohdat) |
---|
137 | { |
---|
138 | Add(valikonKohta); |
---|
139 | } |
---|
140 | |
---|
141 | Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, naytalista, null); |
---|
142 | Mouse.ListenOn(kohta2, MouseButton.Left, ButtonState.Pressed, poistalista, null); |
---|
143 | Mouse.ListenOn(kohta3, MouseButton.Left, ButtonState.Pressed, Begin, null); |
---|
144 | |
---|
145 | Mouse.IsCursorVisible = true; |
---|
146 | Mouse.ListenMovement(1.0, ValikossaLiikkuminen, null); |
---|
147 | Keyboard.Listen(Key.Escape, ButtonState.Pressed, Lopeta, ""); |
---|
148 | } |
---|
149 | void naytalista() |
---|
150 | { |
---|
151 | HighScoreWindow topIkkuna = new HighScoreWindow("GravityGame", |
---|
152 | "Parhaat pisteet", |
---|
153 | topLista); |
---|
154 | topIkkuna.Closed += TallennaPisteet; |
---|
155 | Add(topIkkuna); |
---|
156 | } |
---|
157 | |
---|
158 | void poistalista() |
---|
159 | { |
---|
160 | |
---|
161 | DataStorage.Delete("Data/pisteet.xml"); |
---|
162 | } |
---|
163 | |
---|
164 | void ohjeet() |
---|
165 | { |
---|
166 | |
---|
167 | } |
---|
168 | |
---|
169 | |
---|
170 | void AloitaPeli() |
---|
171 | { |
---|
172 | ClearAll(); |
---|
173 | alku(); |
---|
174 | |
---|
175 | } |
---|
176 | |
---|
177 | void Lopeta() |
---|
178 | { |
---|
179 | Exit(); |
---|
180 | } |
---|
181 | |
---|
182 | //----------------------------------------------------------------------------------------------------------------------------------------- |
---|
183 | //----------------------------------------------------------------------------------------------------------------------------------------- |
---|
184 | //----------------------------------------------------------------------------------------------------------------------------------------- |
---|
185 | //----------------------------------------------------------------------------------------------------------------------------------------- |
---|
186 | //----------------------------------------------------------------------------------------------------------------------------------------- |
---|
187 | //----------------------------------------------------------------------------------------------------------------------------------------- |
---|
188 | |
---|
189 | void alku() |
---|
190 | { |
---|
191 | { |
---|
192 | ClearAll(); |
---|
193 | Mouse.IsCursorVisible = false; |
---|
194 | tahtienmaara = 0; |
---|
195 | mpainovoima = 4; |
---|
196 | mmakspainovoima = 4; |
---|
197 | tasonro = 1; |
---|
198 | aika = 30; |
---|
199 | pisteet = 0; |
---|
200 | makstahdet = 3; |
---|
201 | tarkistus = true; |
---|
202 | luoTekstit(); |
---|
203 | MessageDisplay.Add("Olet kerännyt " + tahtienmaara + " / 3 tähteä"); |
---|
204 | MessageDisplay.Add("Painovoiman muutoksia jäljellä " + mpainovoima); |
---|
205 | Gravity = new Vector(0, -1000); |
---|
206 | minne = "alas"; |
---|
207 | luoKentta(); |
---|
208 | lisaaNappaimet(); |
---|
209 | Camera.Follow(pelaaja1); |
---|
210 | //Camera.ZoomFactor = 1.2; |
---|
211 | Camera.StayInLevel = true; |
---|
212 | |
---|
213 | alaspainLaskuri = new DoubleMeter(aika); |
---|
214 | |
---|
215 | aikaLaskuri = new Timer(); |
---|
216 | aikaLaskuri.Interval = 0.1; |
---|
217 | aikaLaskuri.Trigger += LaskeAlaspain; |
---|
218 | aikaLaskuri.Start(); |
---|
219 | |
---|
220 | aikaNaytto = new Label(); |
---|
221 | aikaNaytto.TextColor = Color.Black; |
---|
222 | aikaNaytto.DecimalPlaces = 1; |
---|
223 | aikaNaytto.BindTo(alaspainLaskuri); |
---|
224 | Add(aikaNaytto); |
---|
225 | } |
---|
226 | } |
---|
227 | |
---|
228 | |
---|
229 | void uusialku() |
---|
230 | { |
---|
231 | ClearAll(); |
---|
232 | tahtienmaara = 0; |
---|
233 | mpainovoima = 4; |
---|
234 | makstahdet = 3; |
---|
235 | luoTekstit(); |
---|
236 | //Label tahdet = new Label("Olet kerännyt " + tahtienmaara + " / " + makstahdet); |
---|
237 | //tahdet.TextColor = Color.Black; |
---|
238 | //tahdet.X = 100; |
---|
239 | //tahdet.Y = 120; |
---|
240 | //Add(tahdet); |
---|
241 | |
---|
242 | //Label painovm = new Label("Sinulla on " + mpainovoima + " painovoiman muutosta jäljellä"); |
---|
243 | //painovm.TextColor = Color.Black; |
---|
244 | //painovm.X = 100; |
---|
245 | //painovm.Y = 100; |
---|
246 | //Add(painovm); |
---|
247 | |
---|
248 | MessageDisplay.Add("Olet kerännyt " + tahtienmaara + " / 3 tähteä"); |
---|
249 | MessageDisplay.Add("Painovoiman muutoksia jäljellä " + mpainovoima); |
---|
250 | Gravity = new Vector(0, -1000); |
---|
251 | minne = "alas"; |
---|
252 | luoKentta(); |
---|
253 | lisaaNappaimet(); |
---|
254 | Camera.Follow(pelaaja1); |
---|
255 | //Camera.ZoomFactor = 1.2; |
---|
256 | Camera.StayInLevel = true; |
---|
257 | |
---|
258 | Label aikaNaytto = new Label(); |
---|
259 | aikaNaytto.TextColor = Color.Black; |
---|
260 | aikaNaytto.DecimalPlaces = 1; |
---|
261 | aikaNaytto.BindTo(alaspainLaskuri); |
---|
262 | Add(aikaNaytto); |
---|
263 | } |
---|
264 | |
---|
265 | void luoTekstit() |
---|
266 | { |
---|
267 | tahdet = new Label("Kerätyt tähdet: " + tahtienmaara + " / " + makstahdet); |
---|
268 | tahdet.TextColor = Color.Black; |
---|
269 | tahdet.X = 0; |
---|
270 | tahdet.Y = 120; |
---|
271 | Add(tahdet); |
---|
272 | painovm = new Label("Painovoiman muutoksia jäljellä: " + mpainovoima); |
---|
273 | painovm.TextColor = Color.Black; |
---|
274 | painovm.X = 0; |
---|
275 | painovm.Y = 140; |
---|
276 | Add(painovm); |
---|
277 | pisteetteksti = new Label("Pisteet: " + pisteet); |
---|
278 | pisteetteksti.TextColor = Color.Black; |
---|
279 | pisteetteksti.X = 0; |
---|
280 | pisteetteksti.Y = 160; |
---|
281 | Add(pisteetteksti); |
---|
282 | |
---|
283 | } |
---|
284 | |
---|
285 | void LaskeAlaspain(Timer timer) |
---|
286 | { |
---|
287 | if (alaspainLaskuri.Value < 20) aikaNaytto.TextColor = Color.Red; |
---|
288 | else aikaNaytto.TextColor = Color.Black; |
---|
289 | |
---|
290 | |
---|
291 | if (alaspainLaskuri.Value > 0) |
---|
292 | { |
---|
293 | alaspainLaskuri.Value -= 0.1; |
---|
294 | } |
---|
295 | |
---|
296 | else |
---|
297 | { |
---|
298 | timer.Stop(); |
---|
299 | alaspainLaskuri.Value = 0; |
---|
300 | MessageDisplay.Add("Aika loppui..."); |
---|
301 | aikaLoppui(); |
---|
302 | } |
---|
303 | } |
---|
304 | |
---|
305 | void aikaLoppui() |
---|
306 | { |
---|
307 | Mouse.IsCursorVisible = true; |
---|
308 | alaspainLaskuri.Value = 0; |
---|
309 | ClearControls(); |
---|
310 | Label Havisit = new Label("Aika loppui!"); |
---|
311 | Havisit.TextColor = Color.Red; |
---|
312 | Havisit.X = 0; |
---|
313 | Havisit.Y = 80; |
---|
314 | Add(Havisit); |
---|
315 | Label Havisit2 = new Label("Hävisit pelin!"); |
---|
316 | Havisit2.TextColor = Color.Red; |
---|
317 | Havisit2.X = 0; |
---|
318 | Havisit2.Y = 40; |
---|
319 | Add(Havisit2); |
---|
320 | Timer.SingleShot(3.5, aikaLoppui2); |
---|
321 | } |
---|
322 | void aikaLoppui2() |
---|
323 | { |
---|
324 | alaspainLaskuri.Value = 0; |
---|
325 | HighScoreWindow topIkkuna = new HighScoreWindow("GravityGame", |
---|
326 | "Parhaat pisteet", |
---|
327 | "Onneksi olkoon, pääsit listalle pisteillä %p! Syötä nimesi:", |
---|
328 | topLista, pisteet); |
---|
329 | topIkkuna.Closed += TallennaPisteet; |
---|
330 | Add(topIkkuna); |
---|
331 | |
---|
332 | } |
---|
333 | void TallennaPisteet(Window sender) |
---|
334 | { |
---|
335 | DataStorage.Save<ScoreList>(topLista, "pisteet.xml"); |
---|
336 | ClearAll(); |
---|
337 | Begin(); |
---|
338 | } |
---|
339 | |
---|
340 | |
---|
341 | void luoKentta() |
---|
342 | { |
---|
343 | TileMap kentta = TileMap.FromFile("kentta1.txt"); |
---|
344 | kentta['#'] = lisaaTaso; |
---|
345 | kentta['*'] = lisaaTahti; |
---|
346 | kentta['N'] = lisaaPelaaja; |
---|
347 | kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO); |
---|
348 | //Level.CreateBorders(); |
---|
349 | Level.Background.CreateGradient(Color.White, Color.LightGray); |
---|
350 | AddCollisionHandler(pelaaja1, KäsittelePelaajanTörmäys); |
---|
351 | } |
---|
352 | |
---|
353 | PhysicsObject lisaaTaso() |
---|
354 | { |
---|
355 | PhysicsObject taso = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO); |
---|
356 | taso.Color = Color.DarkGray; |
---|
357 | return taso; |
---|
358 | } |
---|
359 | |
---|
360 | PhysicsObject lisaaTahti() |
---|
361 | { |
---|
362 | PhysicsObject tahti = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO); |
---|
363 | tahti.Image = tahtiKuva; |
---|
364 | tahti.Tag = "tahti"; |
---|
365 | return tahti; |
---|
366 | } |
---|
367 | |
---|
368 | PhysicsObject lisaaPelaaja() |
---|
369 | { |
---|
370 | pelaaja1 = new PhysicsObject(40, 40, Shape.Circle); |
---|
371 | pelaaja1.Mass = 4.0; |
---|
372 | pelaaja1.Image = pelaajanKuva; |
---|
373 | pelaaja1.Restitution = 0.5; |
---|
374 | pelaaja1.CanRotate = false; |
---|
375 | return pelaaja1; |
---|
376 | } |
---|
377 | |
---|
378 | PhysicsObject lisaaPiikkiy() |
---|
379 | { |
---|
380 | PhysicsObject piikkiy = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO); |
---|
381 | piikkiy.Shape = Shape.Triangle; |
---|
382 | piikkiy.Color = Color.Wheat; |
---|
383 | piikkiy.CanRotate = false; |
---|
384 | piikkiy.Tag = "piikkiy"; |
---|
385 | return piikkiy; |
---|
386 | } |
---|
387 | |
---|
388 | PhysicsObject lisaaPiikkia() |
---|
389 | { |
---|
390 | PhysicsObject piikkia = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO); |
---|
391 | piikkia.Shape = Shape.Triangle; |
---|
392 | piikkia.CanRotate = false; |
---|
393 | piikkia.Color = Color.Wheat; |
---|
394 | piikkia.Angle = Angle.FromDegrees(180); |
---|
395 | piikkia.Tag = "piikkia"; |
---|
396 | return piikkia; |
---|
397 | } |
---|
398 | |
---|
399 | |
---|
400 | void lisaaNappaimet() |
---|
401 | { |
---|
402 | |
---|
403 | Keyboard.Listen(Key.Escape, ButtonState.Pressed, Begin, "Poistu pelistä"); |
---|
404 | Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus); |
---|
405 | Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja1, nopeus); |
---|
406 | Keyboard.Listen(Key.Space, ButtonState.Pressed, MuutaPainovoima, "Painovoiman muutos"); |
---|
407 | Keyboard.Listen(Key.Enter, ButtonState.Pressed, ulosruudusta, "Aloita taso alusta"); |
---|
408 | Keyboard.Listen(Key.F2, ButtonState.Pressed, voitto, "Aloita taso alusta"); |
---|
409 | |
---|
410 | //ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä"); |
---|
411 | //ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus); |
---|
412 | //ControllerOne.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus); |
---|
413 | //ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus); |
---|
414 | } |
---|
415 | |
---|
416 | void liikuta(PhysicsObject hahmo, double nopeus) |
---|
417 | { |
---|
418 | //hahmo.Walk(nopeus); |
---|
419 | |
---|
420 | if (hahmo.Velocity.Magnitude < 200) |
---|
421 | { |
---|
422 | hahmo.Hit(new Vector(nopeus, 0)); |
---|
423 | } |
---|
424 | |
---|
425 | } |
---|
426 | |
---|
427 | void ulosruudusta() |
---|
428 | { |
---|
429 | |
---|
430 | if (alaspainLaskuri.Value > 0) |
---|
431 | { |
---|
432 | // if (alaspainLaskuri.Value < 20) aikaNaytto.TextColor = Color.Red; |
---|
433 | pisteet = pisteet - (tahtienmaara * 10); |
---|
434 | alaspainLaskuri.Value = Math.Max(0, alaspainLaskuri.Value - 20); |
---|
435 | if (tasonro == 1) uusialku(); |
---|
436 | if (tasonro == 2) taso2(); |
---|
437 | if (tasonro == 3) taso3(); |
---|
438 | if (tasonro == 4) taso4(); |
---|
439 | if (tasonro == 5) taso5(); |
---|
440 | if (tasonro == 6) taso6(); |
---|
441 | if (tasonro == 7) taso7(); |
---|
442 | if (tasonro == 8) taso8(); |
---|
443 | if (tasonro == 9) taso9(); |
---|
444 | } |
---|
445 | else if (alaspainLaskuri.Value <= 0) |
---|
446 | { |
---|
447 | if (tarkistus == true) |
---|
448 | { |
---|
449 | pisteet = pisteet - (tahtienmaara * 10); |
---|
450 | tarkistus = false; |
---|
451 | } |
---|
452 | aikaLaskuri.Stop(); |
---|
453 | alaspainLaskuri.Value = 0; |
---|
454 | aikaLoppui(); |
---|
455 | } |
---|
456 | } |
---|
457 | |
---|
458 | private void LaskeAlaspain() |
---|
459 | { |
---|
460 | throw new NotImplementedException(); |
---|
461 | } |
---|
462 | |
---|
463 | void KäsittelePelaajanTörmäys(PhysicsObject hahmo, PhysicsObject kohde) |
---|
464 | { |
---|
465 | if (kohde.Tag.ToString() == "tahti") |
---|
466 | { |
---|
467 | maaliAani.Play(); |
---|
468 | tahtienmaara++; |
---|
469 | pisteet += 10; |
---|
470 | tahdet.Text = "Tähtien määrä: " + tahtienmaara + " / " + makstahdet; |
---|
471 | pisteetteksti.Text = ("Pisteet: " + pisteet); |
---|
472 | if (makstahdet == 3) alaspainLaskuri.Value +=10; |
---|
473 | else alaspainLaskuri.Value += 6.67; |
---|
474 | kohde.Destroy(); |
---|
475 | |
---|
476 | if (tahtienmaara == makstahdet) |
---|
477 | { |
---|
478 | MessageDisplay.Add("Selvisit tason!!! "); |
---|
479 | //aika = alaspainLaskuri.Value |
---|
480 | if (makstahdet == 3) alaspainLaskuri.Value += 11.5; |
---|
481 | else alaspainLaskuri.Value += 8.15; |
---|
482 | |
---|
483 | if (0 == mpainovoima) pisteet += 10; |
---|
484 | else if (1 == mpainovoima) pisteet += 40; |
---|
485 | else if (2 == mpainovoima) pisteet += 50; |
---|
486 | else if (2 > mpainovoima) pisteet += 100; |
---|
487 | |
---|
488 | |
---|
489 | |
---|
490 | if (tasonro == 1) |
---|
491 | { |
---|
492 | Timer.SingleShot(1.5, taso2); |
---|
493 | } |
---|
494 | if (tasonro == 2) |
---|
495 | { |
---|
496 | Timer.SingleShot(1.5, taso3); |
---|
497 | } |
---|
498 | if (tasonro == 3) |
---|
499 | { |
---|
500 | Timer.SingleShot(1.5, taso4); |
---|
501 | } |
---|
502 | if (tasonro == 4) |
---|
503 | { |
---|
504 | Timer.SingleShot(1.5, taso5); |
---|
505 | } |
---|
506 | if (tasonro == 5) |
---|
507 | { |
---|
508 | Timer.SingleShot(1.5, taso6); |
---|
509 | } |
---|
510 | if (tasonro == 6) |
---|
511 | { |
---|
512 | Timer.SingleShot(1.5, taso7); |
---|
513 | } |
---|
514 | if (tasonro == 7) |
---|
515 | { |
---|
516 | Timer.SingleShot(1.5, taso8); |
---|
517 | } |
---|
518 | if (tasonro == 8) |
---|
519 | { |
---|
520 | Timer.SingleShot(1.5, taso9); |
---|
521 | } |
---|
522 | if (tasonro == 9) |
---|
523 | { |
---|
524 | Timer.SingleShot(1.5, taso10); |
---|
525 | } |
---|
526 | if (tasonro == 10) |
---|
527 | { |
---|
528 | Timer.SingleShot(1.5, voitto); |
---|
529 | } |
---|
530 | |
---|
531 | |
---|
532 | tasonro++; |
---|
533 | } |
---|
534 | } |
---|
535 | |
---|
536 | |
---|
537 | if (kohde.Tag.ToString() == "piikkiy") |
---|
538 | { |
---|
539 | /*pisteet = pisteet - (tahtienmaara * 10); |
---|
540 | alaspainLaskuri.Value = Math.Max(0, alaspainLaskuri.Value - 20); |
---|
541 | |
---|
542 | if (alaspainLaskuri.Value > 0) |
---|
543 | { |
---|
544 | |
---|
545 | if (tasonro == 1) uusialku(); |
---|
546 | if (tasonro == 2) taso2(); |
---|
547 | if (tasonro == 3) taso3(); |
---|
548 | if (tasonro == 4) taso4(); |
---|
549 | if (tasonro == 5) taso5(); |
---|
550 | if (tasonro == 6) taso6(); |
---|
551 | if (tasonro == 7) taso7(); |
---|
552 | if (tasonro == 8) taso8(); |
---|
553 | alaspainLaskuri.Value -= 20; |
---|
554 | }*/ |
---|
555 | ulosruudusta(); |
---|
556 | } |
---|
557 | if (kohde.Tag.ToString() == "piikkia") |
---|
558 | { |
---|
559 | /*pisteet = pisteet - (tahtienmaara * 10); |
---|
560 | alaspainLaskuri.Value = Math.Max(0, alaspainLaskuri.Value - 20); |
---|
561 | if (alaspainLaskuri.Value > 0) |
---|
562 | { |
---|
563 | |
---|
564 | if (tasonro == 1) uusialku(); |
---|
565 | if (tasonro == 2) taso2(); |
---|
566 | if (tasonro == 3) taso3(); |
---|
567 | if (tasonro == 4) taso4(); |
---|
568 | if (tasonro == 5) taso5(); |
---|
569 | if (tasonro == 6) taso6(); |
---|
570 | if (tasonro == 7) taso7(); |
---|
571 | if (tasonro == 8) taso8(); |
---|
572 | alaspainLaskuri.Value -= 20; |
---|
573 | }*/ |
---|
574 | ulosruudusta(); |
---|
575 | } |
---|
576 | } |
---|
577 | |
---|
578 | |
---|
579 | |
---|
580 | |
---|
581 | |
---|
582 | |
---|
583 | void voitto() |
---|
584 | { |
---|
585 | Mouse.IsCursorVisible = true; |
---|
586 | ClearControls(); |
---|
587 | aikaLaskuri.Stop(); |
---|
588 | Label Voitit = new Label("Selvitit kaikki tasot!"); |
---|
589 | Voitit.TextColor = Color.Green; |
---|
590 | Voitit.X = 0; |
---|
591 | Voitit.Y = 80; |
---|
592 | Add(Voitit); |
---|
593 | Label Voitit2 = new Label("Voitit pelin!"); |
---|
594 | Voitit2.TextColor = Color.Green; |
---|
595 | Voitit2.X = 0; |
---|
596 | Voitit2.Y = 40; |
---|
597 | Add(Voitit2); |
---|
598 | Timer.SingleShot(3.5, voitto2); |
---|
599 | } |
---|
600 | |
---|
601 | void voitto2() |
---|
602 | { |
---|
603 | { |
---|
604 | pisteet = pisteet + alaspainLaskuri.Value * 10; |
---|
605 | HighScoreWindow topIkkuna = new HighScoreWindow("GravityGame", |
---|
606 | "Parhaat pisteet", |
---|
607 | "Onneksi olkoon, pääsit listalle pisteillä %p! Syötä nimesi:", |
---|
608 | topLista, pisteet); |
---|
609 | topIkkuna.Closed += TallennaPisteet; |
---|
610 | Add(topIkkuna); |
---|
611 | |
---|
612 | } |
---|
613 | } |
---|
614 | |
---|
615 | |
---|
616 | void MuutaPainovoima() |
---|
617 | { |
---|
618 | if (mpainovoima > 0) |
---|
619 | { |
---|
620 | mpainovoima--; |
---|
621 | painovm.Text = "Painovoiman muutoksia jäljellä: " + mpainovoima; |
---|
622 | Gravity = new Vector(Gravity.X, -Gravity.Y); |
---|
623 | pelaaja1.Image = Image.Flip(pelaaja1.Image); |
---|
624 | } |
---|
625 | } |
---|
626 | |
---|
627 | |
---|
628 | |
---|
629 | |
---|
630 | |
---|
631 | void taso2() |
---|
632 | { |
---|
633 | |
---|
634 | ClearAll(); |
---|
635 | MessageDisplay.TextColor = Color.Black; |
---|
636 | tahtienmaara = 0; |
---|
637 | mpainovoima = 4; |
---|
638 | mmakspainovoima = 4; |
---|
639 | TileMap kentta = TileMap.FromFile("kentta2.txt"); |
---|
640 | kentta['#'] = lisaaTaso; |
---|
641 | kentta['*'] = lisaaTahti; |
---|
642 | kentta['N'] = lisaaPelaaja; |
---|
643 | kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO); |
---|
644 | //Level.CreateBorders(); |
---|
645 | Level.Background.CreateGradient(Color.White, Color.LightGray); |
---|
646 | luoTekstit(); |
---|
647 | MessageDisplay.Add("Olet kerännyt " + tahtienmaara + " / 3 tähteä"); |
---|
648 | MessageDisplay.Add("Painovoiman muutoksia jäljellä " + mpainovoima); |
---|
649 | Gravity = new Vector(0, -1000); |
---|
650 | minne = "alas"; |
---|
651 | lisaaNappaimet(); |
---|
652 | AddCollisionHandler(pelaaja1, KäsittelePelaajanTörmäys); |
---|
653 | Camera.Follow(pelaaja1); |
---|
654 | //Camera.ZoomFactor = 1.2; |
---|
655 | Camera.StayInLevel = true; |
---|
656 | |
---|
657 | Label aikaNaytto = new Label(); |
---|
658 | aikaNaytto.TextColor = Color.Black; |
---|
659 | aikaNaytto.DecimalPlaces = 1; |
---|
660 | aikaNaytto.BindTo(alaspainLaskuri); |
---|
661 | Add(aikaNaytto); |
---|
662 | |
---|
663 | |
---|
664 | |
---|
665 | |
---|
666 | } |
---|
667 | |
---|
668 | |
---|
669 | void taso3() |
---|
670 | { |
---|
671 | |
---|
672 | ClearAll(); |
---|
673 | |
---|
674 | tahtienmaara = 0; |
---|
675 | mpainovoima = 6; |
---|
676 | mmakspainovoima = 6; |
---|
677 | TileMap kentta = TileMap.FromFile("kentta3.txt"); |
---|
678 | kentta['#'] = lisaaTaso; |
---|
679 | kentta['*'] = lisaaTahti; |
---|
680 | kentta['N'] = lisaaPelaaja; |
---|
681 | kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO); |
---|
682 | //Level.CreateBorders(); |
---|
683 | Level.Background.CreateGradient(Color.White, Color.LightGray); |
---|
684 | luoTekstit(); |
---|
685 | |
---|
686 | MessageDisplay.Add("Olet kerännyt " + tahtienmaara + " / 3 tähteä"); |
---|
687 | MessageDisplay.Add("Painovoiman muutoksia jäljellä " + mpainovoima); |
---|
688 | lisaaNappaimet(); |
---|
689 | AddCollisionHandler(pelaaja1, KäsittelePelaajanTörmäys); |
---|
690 | Camera.Follow(pelaaja1); |
---|
691 | //Camera.ZoomFactor = 1.2; |
---|
692 | Camera.StayInLevel = true; |
---|
693 | Gravity = new Vector(0, -1000); |
---|
694 | minne = "alas"; |
---|
695 | Label aikaNaytto = new Label(); |
---|
696 | aikaNaytto.TextColor = Color.Black; |
---|
697 | aikaNaytto.DecimalPlaces = 1; |
---|
698 | aikaNaytto.BindTo(alaspainLaskuri); |
---|
699 | Add(aikaNaytto); |
---|
700 | |
---|
701 | } |
---|
702 | |
---|
703 | void taso4() |
---|
704 | { |
---|
705 | |
---|
706 | ClearAll(); |
---|
707 | |
---|
708 | tahtienmaara = 0; |
---|
709 | mpainovoima = 6; |
---|
710 | mmakspainovoima = 6; |
---|
711 | TileMap kentta = TileMap.FromFile("kentta4.txt"); |
---|
712 | kentta['#'] = lisaaTaso; |
---|
713 | kentta['*'] = lisaaTahti; |
---|
714 | kentta['N'] = lisaaPelaaja; |
---|
715 | kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO); |
---|
716 | //Level.CreateBorders(); |
---|
717 | Level.Background.CreateGradient(Color.White, Color.LightGray); |
---|
718 | luoTekstit(); |
---|
719 | |
---|
720 | MessageDisplay.Add("Olet kerännyt " + tahtienmaara + " / 3 tähteä"); |
---|
721 | MessageDisplay.Add("Painovoiman muutoksia jäljellä " + mpainovoima); |
---|
722 | lisaaNappaimet(); |
---|
723 | AddCollisionHandler(pelaaja1, KäsittelePelaajanTörmäys); |
---|
724 | Camera.Follow(pelaaja1); |
---|
725 | //Camera.ZoomFactor = 1.2; |
---|
726 | Camera.StayInLevel = true; |
---|
727 | Gravity = new Vector(0, -1000); |
---|
728 | minne = "alas"; |
---|
729 | Label aikaNaytto = new Label(); |
---|
730 | aikaNaytto.TextColor = Color.Black; |
---|
731 | aikaNaytto.DecimalPlaces = 1; |
---|
732 | aikaNaytto.BindTo(alaspainLaskuri); |
---|
733 | Add(aikaNaytto); |
---|
734 | |
---|
735 | } |
---|
736 | |
---|
737 | void taso5() |
---|
738 | { |
---|
739 | |
---|
740 | ClearAll(); |
---|
741 | |
---|
742 | tahtienmaara = 0; |
---|
743 | mpainovoima = 6; |
---|
744 | mmakspainovoima = 6; |
---|
745 | TileMap kentta = TileMap.FromFile("kentta5.txt"); |
---|
746 | kentta['#'] = lisaaTaso; |
---|
747 | kentta['*'] = lisaaTahti; |
---|
748 | kentta['N'] = lisaaPelaaja; |
---|
749 | kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO); |
---|
750 | //Level.CreateBorders(); |
---|
751 | Level.Background.CreateGradient(Color.White, Color.LightGray); |
---|
752 | luoTekstit(); |
---|
753 | |
---|
754 | MessageDisplay.Add("Olet kerännyt " + tahtienmaara + " / 3 tähteä"); |
---|
755 | MessageDisplay.Add("Painovoiman muutoksia jäljellä " + mpainovoima); |
---|
756 | lisaaNappaimet(); |
---|
757 | AddCollisionHandler(pelaaja1, KäsittelePelaajanTörmäys); |
---|
758 | Camera.Follow(pelaaja1); |
---|
759 | //Camera.ZoomFactor = 1.2; |
---|
760 | Camera.StayInLevel = true; |
---|
761 | Gravity = new Vector(0, -1000); |
---|
762 | minne = "alas"; |
---|
763 | Label aikaNaytto = new Label(); |
---|
764 | aikaNaytto.TextColor = Color.Black; |
---|
765 | aikaNaytto.DecimalPlaces = 1; |
---|
766 | aikaNaytto.BindTo(alaspainLaskuri); |
---|
767 | Add(aikaNaytto); |
---|
768 | |
---|
769 | } |
---|
770 | void taso6() |
---|
771 | { |
---|
772 | |
---|
773 | ClearAll(); |
---|
774 | |
---|
775 | tahtienmaara = 0; |
---|
776 | mpainovoima =6; |
---|
777 | mmakspainovoima = 6; |
---|
778 | makstahdet = 5; |
---|
779 | TileMap kentta = TileMap.FromFile("kentta6.txt"); |
---|
780 | kentta['#'] = lisaaTaso; |
---|
781 | kentta['*'] = lisaaTahti; |
---|
782 | kentta['N'] = lisaaPelaaja; |
---|
783 | kentta['A'] = lisaaPiikkiy; |
---|
784 | kentta['V'] = lisaaPiikkia; |
---|
785 | kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO); |
---|
786 | //Level.CreateBorders(); |
---|
787 | Level.Background.CreateGradient(Color.White, Color.LightGray); |
---|
788 | luoTekstit(); |
---|
789 | |
---|
790 | lisaaNappaimet(); |
---|
791 | //AddCollisionHandler(pelaaja1, osuPiikkiy); |
---|
792 | //AddCollisionHandler(pelaaja1, osuPiikkia); |
---|
793 | AddCollisionHandler(pelaaja1, KäsittelePelaajanTörmäys); |
---|
794 | Camera.Follow(pelaaja1); |
---|
795 | //Camera.ZoomFactor = 1.; |
---|
796 | Camera.StayInLevel = true; |
---|
797 | Gravity = new Vector(0, -1000); |
---|
798 | //minne = "alas"; |
---|
799 | Label aikaNaytto = new Label(); |
---|
800 | aikaNaytto.TextColor = Color.Black; |
---|
801 | aikaNaytto.DecimalPlaces = 1; |
---|
802 | aikaNaytto.BindTo(alaspainLaskuri); |
---|
803 | Add(aikaNaytto); |
---|
804 | |
---|
805 | } |
---|
806 | |
---|
807 | void taso7() |
---|
808 | { |
---|
809 | |
---|
810 | ClearAll(); |
---|
811 | |
---|
812 | tahtienmaara = 0; |
---|
813 | mpainovoima = 10; |
---|
814 | makstahdet = 5; |
---|
815 | TileMap kentta = TileMap.FromFile("kentta10.txt"); |
---|
816 | kentta['#'] = lisaaTaso; |
---|
817 | kentta['*'] = lisaaTahti; |
---|
818 | kentta['N'] = lisaaPelaaja; |
---|
819 | kentta['A'] = lisaaPiikkiy; |
---|
820 | kentta['V'] = lisaaPiikkia; |
---|
821 | kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO); |
---|
822 | //Level.CreateBorders(); |
---|
823 | Level.Background.CreateGradient(Color.White, Color.LightGray); |
---|
824 | luoTekstit(); |
---|
825 | |
---|
826 | lisaaNappaimet(); |
---|
827 | //AddCollisionHandler(pelaaja1, osuPiikkiy); |
---|
828 | //AddCollisionHandler(pelaaja1, osuPiikkia); |
---|
829 | AddCollisionHandler(pelaaja1, KäsittelePelaajanTörmäys); |
---|
830 | Camera.Follow(pelaaja1); |
---|
831 | //Camera.ZoomFactor = 1.44; |
---|
832 | Camera.StayInLevel = true; |
---|
833 | Gravity = new Vector(0, -1000); |
---|
834 | //minne = "alas"; |
---|
835 | Label aikaNaytto = new Label(); |
---|
836 | aikaNaytto.TextColor = Color.Black; |
---|
837 | aikaNaytto.DecimalPlaces = 1; |
---|
838 | aikaNaytto.BindTo(alaspainLaskuri); |
---|
839 | Add(aikaNaytto); |
---|
840 | |
---|
841 | } |
---|
842 | |
---|
843 | void taso8() |
---|
844 | { |
---|
845 | |
---|
846 | ClearAll(); |
---|
847 | |
---|
848 | tahtienmaara = 0; |
---|
849 | mpainovoima = 10; |
---|
850 | makstahdet = 5; |
---|
851 | TileMap kentta = TileMap.FromFile("kentta8.txt"); |
---|
852 | kentta['#'] = lisaaTaso; |
---|
853 | kentta['*'] = lisaaTahti; |
---|
854 | kentta['N'] = lisaaPelaaja; |
---|
855 | kentta['A'] = lisaaPiikkiy; |
---|
856 | kentta['V'] = lisaaPiikkia; |
---|
857 | kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO); |
---|
858 | //Level.CreateBorders(); |
---|
859 | Level.Background.CreateGradient(Color.White, Color.LightGray); |
---|
860 | luoTekstit(); |
---|
861 | |
---|
862 | lisaaNappaimet(); |
---|
863 | //AddCollisionHandler(pelaaja1, osuPiikkiy); |
---|
864 | //AddCollisionHandler(pelaaja1, osuPiikkia); |
---|
865 | AddCollisionHandler(pelaaja1, KäsittelePelaajanTörmäys); |
---|
866 | Camera.Follow(pelaaja1); |
---|
867 | //Camera.ZoomFactor = 1.44; |
---|
868 | Camera.StayInLevel = true; |
---|
869 | Gravity = new Vector(0, -1000); |
---|
870 | //minne = "alas"; |
---|
871 | Label aikaNaytto = new Label(); |
---|
872 | aikaNaytto.TextColor = Color.Black; |
---|
873 | aikaNaytto.DecimalPlaces = 1; |
---|
874 | aikaNaytto.BindTo(alaspainLaskuri); |
---|
875 | Add(aikaNaytto); |
---|
876 | |
---|
877 | } |
---|
878 | void taso9() |
---|
879 | { |
---|
880 | |
---|
881 | ClearAll(); |
---|
882 | |
---|
883 | tahtienmaara = 0; |
---|
884 | mpainovoima = 15; |
---|
885 | makstahdet = 5; |
---|
886 | TileMap kentta = TileMap.FromFile("kentta7.txt"); |
---|
887 | kentta['#'] = lisaaTaso; |
---|
888 | kentta['*'] = lisaaTahti; |
---|
889 | kentta['N'] = lisaaPelaaja; |
---|
890 | kentta['A'] = lisaaPiikkiy; |
---|
891 | kentta['V'] = lisaaPiikkia; |
---|
892 | kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO); |
---|
893 | //Level.CreateBorders(); |
---|
894 | Level.Background.CreateGradient(Color.White, Color.LightGray); |
---|
895 | luoTekstit(); |
---|
896 | |
---|
897 | lisaaNappaimet(); |
---|
898 | //AddCollisionHandler(pelaaja1, osuPiikkiy); |
---|
899 | //AddCollisionHandler(pelaaja1, osuPiikkia); |
---|
900 | AddCollisionHandler(pelaaja1, KäsittelePelaajanTörmäys); |
---|
901 | Camera.Follow(pelaaja1); |
---|
902 | //Camera.ZoomFactor = 1.44; |
---|
903 | Camera.StayInLevel = true; |
---|
904 | Gravity = new Vector(0, -1000); |
---|
905 | //minne = "alas"; |
---|
906 | Label aikaNaytto = new Label(); |
---|
907 | aikaNaytto.TextColor = Color.Black; |
---|
908 | aikaNaytto.DecimalPlaces = 1; |
---|
909 | aikaNaytto.BindTo(alaspainLaskuri); |
---|
910 | Add(aikaNaytto); |
---|
911 | |
---|
912 | } |
---|
913 | void taso10() |
---|
914 | { |
---|
915 | |
---|
916 | ClearAll(); |
---|
917 | |
---|
918 | tahtienmaara = 0; |
---|
919 | mpainovoima = 10; |
---|
920 | makstahdet = 5; |
---|
921 | TileMap kentta = TileMap.FromFile("kentta9.txt"); |
---|
922 | kentta['#'] = lisaaTaso; |
---|
923 | kentta['*'] = lisaaTahti; |
---|
924 | kentta['N'] = lisaaPelaaja; |
---|
925 | kentta['A'] = lisaaPiikkiy; |
---|
926 | kentta['V'] = lisaaPiikkia; |
---|
927 | kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO); |
---|
928 | //Level.CreateBorders(); |
---|
929 | Level.Background.CreateGradient(Color.White, Color.LightGray); |
---|
930 | luoTekstit(); |
---|
931 | |
---|
932 | lisaaNappaimet(); |
---|
933 | //AddCollisionHandler(pelaaja1, osuPiikkiy); |
---|
934 | //AddCollisionHandler(pelaaja1, osuPiikkia); |
---|
935 | AddCollisionHandler(pelaaja1, KäsittelePelaajanTörmäys); |
---|
936 | Camera.Follow(pelaaja1); |
---|
937 | //Camera.ZoomFactor = 1.44; |
---|
938 | Camera.StayInLevel = true; |
---|
939 | Gravity = new Vector(0, -1000); |
---|
940 | //minne = "alas"; |
---|
941 | Label aikaNaytto = new Label(); |
---|
942 | aikaNaytto.TextColor = Color.Black; |
---|
943 | aikaNaytto.DecimalPlaces = 1; |
---|
944 | aikaNaytto.BindTo(alaspainLaskuri); |
---|
945 | Add(aikaNaytto); |
---|
946 | |
---|
947 | } |
---|
948 | public string minne { get; set; } |
---|
949 | |
---|
950 | public object taso { get; set; } |
---|
951 | |
---|
952 | protected override void Update(Time time) |
---|
953 | { |
---|
954 | if (pelaaja1 != null) |
---|
955 | { |
---|
956 | if (pelaaja1.X < Level.Left || pelaaja1.X > Level.Right || pelaaja1.Y < Level.Bottom || pelaaja1.Y > Level.Top) |
---|
957 | { |
---|
958 | pelaaja1 = null; |
---|
959 | ulosruudusta(); |
---|
960 | } |
---|
961 | |
---|
962 | |
---|
963 | base.Update(time); |
---|
964 | } |
---|
965 | } |
---|
966 | |
---|
967 | public int kenttanro { get; set; } |
---|
968 | } |
---|
969 | |
---|
970 | |
---|
971 | |
---|
972 | |
---|
973 | |
---|
974 | |
---|