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 | public class Syonti : PhysicsGame |
---|
10 | { |
---|
11 | PhysicsObject pelaaja; |
---|
12 | |
---|
13 | Vector nopeusOikealle = new Vector( 200, 0); |
---|
14 | Vector nopeusVasemmalle = new Vector(-200, 0); |
---|
15 | Vector nopeusYlos = new Vector( 0, 200); |
---|
16 | Vector nopeusAlas = new Vector( 0, -200); |
---|
17 | |
---|
18 | public override void Begin() |
---|
19 | { |
---|
20 | LuoPelaaja(); |
---|
21 | |
---|
22 | // Tehdään muut pallot kenttään: |
---|
23 | LuoUseitaPalloja(50); |
---|
24 | |
---|
25 | LisaaNappaimet(); |
---|
26 | } |
---|
27 | |
---|
28 | void LisaaNappaimet() |
---|
29 | { |
---|
30 | // Poistumisnäppäin |
---|
31 | Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); |
---|
32 | // Helppinäppäin: |
---|
33 | Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); |
---|
34 | |
---|
35 | // Pelaajan nuolinäppäimet: |
---|
36 | Keyboard.Listen(Key.Right, ButtonState.Down, AsetaNopeus, "Liiku oikealle", pelaaja, nopeusOikealle); |
---|
37 | Keyboard.Listen(Key.Right, ButtonState.Released, AsetaNopeus, "Liiku oikealle", pelaaja, Vector.Zero); |
---|
38 | Keyboard.Listen(Key.Left, ButtonState.Down, AsetaNopeus, "Liiku vasemmalle", pelaaja, nopeusVasemmalle); |
---|
39 | Keyboard.Listen(Key.Left, ButtonState.Released, AsetaNopeus, "Liiku vasemmalle", pelaaja, Vector.Zero); |
---|
40 | Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Liiku ylös", pelaaja, nopeusYlos); |
---|
41 | Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, "Liiku ylös", pelaaja, Vector.Zero); |
---|
42 | Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Liiku alas", pelaaja, nopeusAlas); |
---|
43 | Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, "Liiku alas", pelaaja, Vector.Zero); |
---|
44 | } |
---|
45 | |
---|
46 | void AsetaNopeus(PhysicsObject hahmo, Vector nopeus) |
---|
47 | { |
---|
48 | hahmo.Velocity = nopeus; |
---|
49 | } |
---|
50 | |
---|
51 | void LuoPelaaja() |
---|
52 | { |
---|
53 | pelaaja = LuoPallo(0.0, 0.0, 20.0, Color.Red); |
---|
54 | Add(pelaaja, 1); |
---|
55 | } |
---|
56 | |
---|
57 | void LuoUseitaPalloja(int maara) |
---|
58 | { |
---|
59 | int i = 0; |
---|
60 | while (i < maara) |
---|
61 | { |
---|
62 | double x = RandomGen.NextDouble(Level.Left, Level.Right); |
---|
63 | double y = RandomGen.NextDouble(Level.Bottom, Level.Top); |
---|
64 | PhysicsObject p = LuoPallo(x, y, 40.0, Color.Beige); |
---|
65 | Add(p); |
---|
66 | i++; |
---|
67 | } |
---|
68 | } |
---|
69 | |
---|
70 | PhysicsObject LuoPallo(double x, double y, double sade, Color vari) |
---|
71 | { |
---|
72 | PhysicsObject pallura = new PhysicsObject(sade * 2.0, sade * 2.0, Shape.Circle); |
---|
73 | pallura.Position = new Vector(x, y); |
---|
74 | pallura.Color = vari; |
---|
75 | return pallura; |
---|
76 | } |
---|
77 | } |
---|