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 Pallopeli : PhysicsGame |
---|
10 | { |
---|
11 | PhysicsObject pelaaja1; |
---|
12 | Image pelaajanKuva = LoadImage("pinkman"); |
---|
13 | Image vihollisenKuva = LoadImage("vihu"); |
---|
14 | |
---|
15 | public override void Begin() |
---|
16 | { |
---|
17 | SmoothTextures = false; |
---|
18 | |
---|
19 | Level.CreateBorders(); |
---|
20 | |
---|
21 | // TODO tee 2 tai useampi näitä samanlaisia vihollisia |
---|
22 | LuoVihollinen(); |
---|
23 | |
---|
24 | |
---|
25 | |
---|
26 | LuoPallo(-100.0, -20.5, Color.HotPink); |
---|
27 | LuoPallo(200.0, 0.0, Color.MidnightBlue); |
---|
28 | LuoPallo(150.0, 0.0, Color.Green); |
---|
29 | LuoPallo(150.0, 400.0, Color.MediumVioletRed); |
---|
30 | |
---|
31 | for (int i = 0; i < 25; i++) |
---|
32 | { |
---|
33 | double satunnainenX = RandomGen.NextDouble(Level.Left + 50.0, Level.Right - 50.0); |
---|
34 | double satunnainenY = RandomGen.NextDouble(Level.Bottom + 50.0, Level.Top - 50.0); |
---|
35 | LuoPallo(satunnainenX, satunnainenY, Color.Brown); |
---|
36 | } |
---|
37 | |
---|
38 | |
---|
39 | LisaaPelaaja(); |
---|
40 | |
---|
41 | // TODO tee oma aliohjelma nappuloiden asettamiseksi |
---|
42 | PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); |
---|
43 | Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); |
---|
44 | Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, "Liiku vasemmalle", new Vector(-1000, 0)); |
---|
45 | Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, "Liiku oikealle", new Vector(1000, 0)); |
---|
46 | Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, "Liiku ylös", new Vector(0, 1000)); |
---|
47 | Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, "Liiku alas", new Vector(0, -1000)); |
---|
48 | } |
---|
49 | |
---|
50 | void LiikutaPelaajaa(Vector vektori) |
---|
51 | { |
---|
52 | pelaaja1.Push(vektori); |
---|
53 | } |
---|
54 | void LisaaPelaaja() |
---|
55 | { |
---|
56 | pelaaja1 = new PhysicsObject(40.0, 40.0); |
---|
57 | pelaaja1.CanRotate = false; |
---|
58 | pelaaja1.Image = pelaajanKuva; |
---|
59 | Add(pelaaja1); |
---|
60 | AddCollisionHandler(pelaaja1, "pallura", PelaajaTormaaPalloon); |
---|
61 | AddCollisionHandler(pelaaja1, "vihu", PelaajaTormaaVihuun); |
---|
62 | } |
---|
63 | |
---|
64 | void PelaajaTormaaPalloon(PhysicsObject pelaajahahmo, PhysicsObject pallonen) |
---|
65 | { |
---|
66 | pallonen.Destroy(); |
---|
67 | pelaajahahmo.Width += 20.0; |
---|
68 | pelaajahahmo.Height += 20.0; |
---|
69 | } |
---|
70 | |
---|
71 | void PelaajaTormaaVihuun(PhysicsObject pelaajahahmo, PhysicsObject pahis) |
---|
72 | { |
---|
73 | pahis.Size *= 1.5; |
---|
74 | pelaajahahmo.Size *= 0.5; |
---|
75 | } |
---|
76 | |
---|
77 | void LuoPallo(double xkoordinaatti, double ykoordinaatti, Color vari) |
---|
78 | { |
---|
79 | PhysicsObject pallo = new PhysicsObject(50.0, 50.0, Shape.Circle); |
---|
80 | pallo.Color = vari; |
---|
81 | pallo.X = xkoordinaatti; |
---|
82 | pallo.Y = ykoordinaatti; |
---|
83 | pallo.Tag = "pallura"; |
---|
84 | Add(pallo); |
---|
85 | } |
---|
86 | |
---|
87 | void LuoVihollinen() |
---|
88 | { |
---|
89 | PhysicsObject vihollinen = new PhysicsObject(50.0, 50.0); |
---|
90 | vihollinen.X = 400.0; |
---|
91 | vihollinen.Y = 0.0; |
---|
92 | vihollinen.Image = vihollisenKuva; |
---|
93 | vihollinen.Tag = "vihu"; |
---|
94 | Add(vihollinen); |
---|
95 | |
---|
96 | // TODO tee jokin keino tappaa vihollinen..? |
---|
97 | |
---|
98 | // TODO lisää viholliselle tekoäly, jotta se seuraa pelaajaa |
---|
99 | } |
---|
100 | } |
---|