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 JouninHienoFysiikkapeli : PhysicsGame |
---|
10 | { |
---|
11 | public override void Begin() |
---|
12 | { |
---|
13 | IsFullScreen = true; |
---|
14 | //SetWindowSize(800, 600); |
---|
15 | |
---|
16 | Level.CreateBorders(); |
---|
17 | PhysicsObject ympyra = LuoOlio(140.0, 76.0, Color.Red, Shape.Circle); |
---|
18 | ympyra.Tag = "hyvis"; |
---|
19 | |
---|
20 | Vector impulssi = new Vector(100, 0); |
---|
21 | ympyra.Hit(impulssi); |
---|
22 | |
---|
23 | LuoOlio(290.0, 76.0, Color.Black, Shape.Rectangle); |
---|
24 | |
---|
25 | LuoOlio(0.0, 0.0, Color.Black, Shape.Diamond); |
---|
26 | |
---|
27 | for (int i = 0; i < 100; i++) |
---|
28 | { |
---|
29 | LuoOlio(RandomGen.NextDouble(Level.Left, Level.Right), RandomGen.NextDouble(Level.Bottom, Level.Top), RandomGen.NextColor(), Shape.Circle); |
---|
30 | } |
---|
31 | |
---|
32 | for (int i = 0; i < 10; i++) |
---|
33 | { |
---|
34 | PhysicsObject luotuPallo = LuoOlio(RandomGen.NextDouble(Level.Left, Level.Right), RandomGen.NextDouble(Level.Bottom, Level.Top), RandomGen.NextColor(), Shape.Circle); |
---|
35 | luotuPallo.Tag = "hyvis"; |
---|
36 | AddCollisionHandler(luotuPallo, "pahis", TeeRajahdys); |
---|
37 | } |
---|
38 | // luodaan pallo: |
---|
39 | //PhysicsObject pallo2 = new PhysicsObject(50, 50); |
---|
40 | //pallo2.Shape = Shape.Circle; |
---|
41 | //pallo2.Position = new Vector(140, 76); |
---|
42 | //pallo2.Color = Color.White; |
---|
43 | //Add(pallo2); |
---|
44 | |
---|
45 | PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); |
---|
46 | Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); |
---|
47 | Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); |
---|
48 | Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, "Liiku ylös", ympyra, new Vector(0, 10)); |
---|
49 | Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, "Liiku alas", ympyra, new Vector(0, -10)); |
---|
50 | Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, "Liiku vasemmalle", ympyra, new Vector(-10, 0)); |
---|
51 | Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, "Liiku oikealle", ympyra, new Vector(10, 0)); |
---|
52 | |
---|
53 | AddCollisionHandler(ympyra, "pahis", TeeRajahdys); |
---|
54 | |
---|
55 | } |
---|
56 | |
---|
57 | void LiikutaPelaajaa(PhysicsObject pelaaja, Vector voima) |
---|
58 | { |
---|
59 | pelaaja.Hit(voima); |
---|
60 | } |
---|
61 | |
---|
62 | void TeeRajahdys(PhysicsObject tormaaja, PhysicsObject kohde) |
---|
63 | { |
---|
64 | |
---|
65 | Explosion rajahdys = new Explosion(500); |
---|
66 | rajahdys.Position = kohde.Position; |
---|
67 | kohde.Destroy(); |
---|
68 | Add(rajahdys); |
---|
69 | } |
---|
70 | |
---|
71 | PhysicsObject LuoOlio(double x, double y, Color vari, Shape muoto) |
---|
72 | { |
---|
73 | // luodaan uusi olio: |
---|
74 | PhysicsObject uusiOlio = new PhysicsObject(50, 50); |
---|
75 | uusiOlio.Shape = muoto; |
---|
76 | uusiOlio.Position = new Vector(x, y); |
---|
77 | uusiOlio.Color = vari; |
---|
78 | uusiOlio.Tag = "pahis"; |
---|
79 | Add(uusiOlio); |
---|
80 | return uusiOlio; |
---|
81 | } |
---|
82 | |
---|
83 | } |
---|