1 | using System; |
---|
2 | using Jypeli; |
---|
3 | using Jypeli.Widgets; |
---|
4 | using Jypeli.Assets; |
---|
5 | |
---|
6 | public class Peli : PhysicsGame |
---|
7 | { |
---|
8 | Image osotinkuva = LoadImage("reittivalitsin"); |
---|
9 | |
---|
10 | PhysicsObject osoitin; |
---|
11 | PhysicsObject pallo; |
---|
12 | double palloja; |
---|
13 | double vaihda; |
---|
14 | double lisaapallo; |
---|
15 | |
---|
16 | protected override void Begin() |
---|
17 | { |
---|
18 | osoitin = LuoOsoitin(); |
---|
19 | Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Sulje"); |
---|
20 | pallo = LuoPallo(); |
---|
21 | |
---|
22 | Mouse.Listen(MouseButton.Left, ButtonState.Down, Pam, "Luo räjähdys"); |
---|
23 | Camera.ZoomToLevel(); |
---|
24 | Gravity = new Vector(0.0, -500.0); |
---|
25 | PhysicsObject vasenReuna = Level.CreateLeftBorder(); |
---|
26 | vasenReuna.Restitution = 1.0; |
---|
27 | vasenReuna.IsVisible = false; |
---|
28 | PhysicsObject oikeaReuna = Level.CreateRightBorder(); |
---|
29 | oikeaReuna.Restitution = 1.0; |
---|
30 | oikeaReuna.IsVisible = false; |
---|
31 | PhysicsObject ylaReuna = Level.CreateTopBorder(); |
---|
32 | ylaReuna.Restitution = 1.0; |
---|
33 | ylaReuna.IsVisible = false; |
---|
34 | PhysicsObject alaReuna = Level.CreateBottomBorder(); |
---|
35 | alaReuna.Restitution = 1.0; |
---|
36 | alaReuna.IsVisible = false; |
---|
37 | palloja = 0; |
---|
38 | vaihda = 0; |
---|
39 | lisaapallo = 0; |
---|
40 | } |
---|
41 | |
---|
42 | protected override void Update(Time time) |
---|
43 | { |
---|
44 | base.Update(time); |
---|
45 | |
---|
46 | if (vaihda == 50) |
---|
47 | { |
---|
48 | Level.BackgroundColor = RandomGen.NextColor(); |
---|
49 | vaihda = 0; |
---|
50 | } |
---|
51 | vaihda++; |
---|
52 | if (lisaapallo == 10) |
---|
53 | { |
---|
54 | if (palloja <= 200) |
---|
55 | { |
---|
56 | LuoPallo(); |
---|
57 | palloja++; |
---|
58 | lisaapallo = 0; |
---|
59 | } |
---|
60 | } |
---|
61 | lisaapallo++; |
---|
62 | if (osoitin != null) |
---|
63 | { |
---|
64 | osoitin.X = Mouse.PositionOnScreen.X; |
---|
65 | osoitin.Y = Mouse.PositionOnScreen.Y; |
---|
66 | } |
---|
67 | |
---|
68 | } |
---|
69 | |
---|
70 | |
---|
71 | PhysicsObject LuoOsoitin() |
---|
72 | { |
---|
73 | PhysicsObject osoitin = new PhysicsObject(25.0, 25.0); |
---|
74 | osoitin.Shape = Shapes.Circle; |
---|
75 | osoitin.Color = Color.White; |
---|
76 | osoitin.X = Mouse.PositionOnScreen.X; |
---|
77 | osoitin.Y = Mouse.PositionOnScreen.Y; |
---|
78 | osoitin.Restitution = 1.0; |
---|
79 | osoitin.Image = osotinkuva; |
---|
80 | |
---|
81 | osoitin.IgnoresCollisionResponse = true; |
---|
82 | osoitin.IgnoresGravity = true; |
---|
83 | osoitin.IgnoresPhysicsLogics = true; |
---|
84 | osoitin.IgnoresExplosions = true; |
---|
85 | |
---|
86 | Add(osoitin); |
---|
87 | |
---|
88 | return osoitin; |
---|
89 | } |
---|
90 | |
---|
91 | PhysicsObject LuoPallo() |
---|
92 | { |
---|
93 | PhysicsObject pallo = new PhysicsObject(20.00, 20.00); |
---|
94 | pallo.Shape = Shapes.Circle; |
---|
95 | pallo.Position = RandomGen.NextVector(Level.Right, Level.Bottom, Level.Left, Level.Top); |
---|
96 | // RandomGen.NextDouble(Level.Right, Level.Left); RandomGen.NextDouble(Level.Top, Level.Bottom); |
---|
97 | /*pallo.X = 0.0; |
---|
98 | pallo.Y = 0.0;*/ |
---|
99 | pallo.Color = RandomGen.NextColor(); |
---|
100 | |
---|
101 | Add(pallo); |
---|
102 | |
---|
103 | return pallo; |
---|
104 | } |
---|
105 | |
---|
106 | void Pam() |
---|
107 | { |
---|
108 | Explosion rajahdys = new Explosion(100.0); |
---|
109 | rajahdys.Position = Mouse.PositionOnScreen; |
---|
110 | Add(rajahdys); |
---|
111 | |
---|
112 | //Lisäasetukset |
---|
113 | // |
---|
114 | //rajahdys.Speed = 500.0; |
---|
115 | //rajahdys.Force = 10000; |
---|
116 | //rajahdys.ShockwaveColor = Color.Yellow; |
---|
117 | } |
---|
118 | } |
---|