1 | using System; |
---|
2 | using Jypeli; |
---|
3 | using Jypeli.ScreenObjects; |
---|
4 | using Jypeli.Assets; |
---|
5 | |
---|
6 | namespace Blockbuster |
---|
7 | { |
---|
8 | public class Peli : PhysicsGame |
---|
9 | { |
---|
10 | |
---|
11 | PhysicsObject pallo; |
---|
12 | PhysicsObject maila; |
---|
13 | Timer BallRebounceTimer; |
---|
14 | Boolean CheckRebounce; |
---|
15 | Vector rebound; |
---|
16 | Boolean LazerCheck; |
---|
17 | Object LazerPowerUp; |
---|
18 | Object RocketPowerUp; |
---|
19 | Object BawlsTimesThree; |
---|
20 | |
---|
21 | protected override void Begin() |
---|
22 | { |
---|
23 | LuoPallo(); |
---|
24 | LuoMaila(); |
---|
25 | AloitaPeli(); |
---|
26 | CreateBlocks(); |
---|
27 | |
---|
28 | Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); |
---|
29 | Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Kontrollit"); |
---|
30 | Keyboard.Listen(Key.W, ButtonState.Pressed, BallRebounce, "Tönäise palloa"); |
---|
31 | Mouse.Listen(MouseButton.Left, ButtonState.Pressed, ShootLazer, "Ammu lasereita (kun saatavilla). Hiiren vasen näppäin"); |
---|
32 | Mouse.ListenMovement(0.1, KuunteleLiiketta, null); |
---|
33 | PhysicsObject bottom = PhysicsObject.CreateStaticObject(1000.0, 10.0); |
---|
34 | bottom.X = 0; |
---|
35 | bottom.Y = -350; |
---|
36 | Add(bottom); |
---|
37 | Level.CreateBorders(1.0, false); |
---|
38 | Camera.ZoomToLevel(); |
---|
39 | } |
---|
40 | |
---|
41 | void LuoPallo() |
---|
42 | { |
---|
43 | pallo = new PhysicsObject(25.0, 25.0); |
---|
44 | pallo.Shape = Shapes.Circle; |
---|
45 | Add(pallo); |
---|
46 | pallo.Restitution = 1.0; |
---|
47 | pallo.X = 0; |
---|
48 | pallo.Y = -250; |
---|
49 | pallo.KineticFriction = 0.0; |
---|
50 | AddCollisionHandler(pallo, ProcessBallCrash); |
---|
51 | AddCollisionHandler(pallo, ProcessBallLoss); |
---|
52 | } |
---|
53 | |
---|
54 | void KuunteleLiiketta(AnalogState hiirenTila) |
---|
55 | { |
---|
56 | maila.X = Mouse.PositionOnWorld.X; |
---|
57 | } |
---|
58 | |
---|
59 | void LuoMaila() |
---|
60 | { |
---|
61 | maila = PhysicsObject.CreateStaticObject(100.0, 20.0); |
---|
62 | maila.Shape = Shapes.Rectangle; |
---|
63 | Add(maila); |
---|
64 | maila.Restitution = 1.0; |
---|
65 | maila.X = 0; |
---|
66 | maila.Y = -300; |
---|
67 | } |
---|
68 | |
---|
69 | void AloitaPeli() |
---|
70 | { |
---|
71 | Vector startgame = new Vector(25.0, 300.0); |
---|
72 | pallo.Hit(startgame); |
---|
73 | CheckRebounce = true; |
---|
74 | BallRebounceTimer = new Timer(); |
---|
75 | BallRebounceTimer.Interval = 10; |
---|
76 | BallRebounceTimer.Trigger +=new Timer.TriggerHandler(TimerBallRebounce); |
---|
77 | Add(BallRebounceTimer); |
---|
78 | BallRebounceTimer.Start(); |
---|
79 | } |
---|
80 | |
---|
81 | void BallRebounce() |
---|
82 | { |
---|
83 | if (CheckRebounce == true) |
---|
84 | { |
---|
85 | rebound = new Vector(25.0, 300.0); |
---|
86 | pallo.Hit(rebound); |
---|
87 | CheckRebounce = false; |
---|
88 | } |
---|
89 | } |
---|
90 | |
---|
91 | void TimerBallRebounce( Timer sender ) |
---|
92 | { |
---|
93 | CheckRebounce = true; |
---|
94 | } |
---|
95 | |
---|
96 | void CreateBlocks() |
---|
97 | { |
---|
98 | for (int i = 0; i < 7; i++) |
---|
99 | { |
---|
100 | int vali = new int(); |
---|
101 | vali = 140; |
---|
102 | PhysicsObject block = PhysicsObject.CreateStaticObject(100.0, 20.0); |
---|
103 | block.X = -425 + i * vali; |
---|
104 | Add(block); |
---|
105 | } |
---|
106 | } |
---|
107 | |
---|
108 | void ProcessBallCrash(PhysicsObject pallo, PhysicsObject block) |
---|
109 | { |
---|
110 | |
---|
111 | } |
---|
112 | |
---|
113 | void ProcessBallLoss(PhysicsObject pallo, PhysicsObject bottom) |
---|
114 | { |
---|
115 | ; |
---|
116 | } |
---|
117 | |
---|
118 | void ShootLazer() |
---|
119 | { |
---|
120 | |
---|
121 | } |
---|
122 | } |
---|
123 | } |
---|