source: 2013/23/AkuK/FysiikkaPeli3/FysiikkaPeli3/FysiikkaPeli3/FysiikkaPeli3.cs @ 3983

Revision 3983, 6.2 KB checked in by anlakane, 7 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class FysiikkaPeli3 : PhysicsGame
10{
11    Image taustaKuva = LoadImage("tausta5");
12   
13
14    DoubleMeter elamaLaskuri;
15
16    Image olionkuva = LoadImage("sinä");
17
18    public override void Begin()
19    {
20       
21
22        // TODO: Kirjoita ohjelmakoodisi tähän
23
24        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
25       
26        LuoAlkuValikko();
27
28     
29
30
31
32
33    }
34    void LuoAlkuValikko()
35    {
36
37   MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko","Start Game", "Help", "Quit");
38        Keyboard.Listen(Key.Escape, ButtonState.Pressed,Exit, "Lopeta peli");
39 
40        Add(alkuValikko);
41        alkuValikko.AddItemHandler(0, AloitaPeli);
42        alkuValikko.AddItemHandler(1,Help);
43        alkuValikko.AddItemHandler(2, Exit);
44
45
46    }
47    void AloitaPeli()
48    { LuoKentta();
49
50 
51
52
53
54    }
55
56
57    void Help()
58    {
59
60
61    }
62    void LiikutaPelaaja(PhysicsObject pelaaja, Vector vektori)
63    {
64
65        pelaaja.Push(vektori);
66
67
68
69    }
70    void StopPelaaja(PhysicsObject pelaaja)
71    {
72
73        pelaaja.Velocity = Vector.Zero;
74
75
76    }
77
78    void LuoKentta()
79    {
80        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("Kenttä2");
81
82
83        ruudut.SetTileMethod(Color.FromHexCode("60FF3D"), LuoPelaaja1);
84        ruudut.SetTileMethod(Color.FromHexCode("000000"), LuoSeina1);
85        ruudut.SetTileMethod(Color.FromHexCode("FF0000"), LuoPotion);
86        ruudut.SetTileMethod(Color.FromHexCode("7F3300"), LuoLepakko);
87
88        ruudut.SetTileMethod(Color.FromHexCode("F7FF1E"), LuoRotta);
89
90        ruudut.Execute(20, 20);
91        LuoElamanLaskuri();
92 Level.Background.Image = taustaKuva;
93Level.Background.TileToLevel();
94
95
96    }
97
98    void LuoPelaaja1(Vector paikka, double leveys, double korkeus)
99    {
100
101        PhysicsObject Pelaaja1 = new PhysicsObject(50, 50);
102        Pelaaja1.Shape = Shape.Circle;
103        Add(Pelaaja1);
104        Pelaaja1.Image = olionkuva;
105        Pelaaja1.Position = paikka;
106        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaaja, null, Pelaaja1, new Vector(-1000, 0));
107        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaaja, null, Pelaaja1, new Vector(1000, 0));
108        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaaja, null, Pelaaja1, new Vector(0, 1000));
109        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaaja, null, Pelaaja1, new Vector(0, -1000));
110        Keyboard.Listen(Key.Left, ButtonState.Released, StopPelaaja, null, Pelaaja1);
111        Keyboard.Listen(Key.Right, ButtonState.Released, StopPelaaja, null, Pelaaja1);
112        Keyboard.Listen(Key.Up, ButtonState.Released, StopPelaaja, null, Pelaaja1);
113        Keyboard.Listen(Key.Down, ButtonState.Released, StopPelaaja, null, Pelaaja1);
114        Pelaaja1.CanRotate = false;
115        Camera.Follow(Pelaaja1);
116        AddCollisionHandler(Pelaaja1, "pahis", PelaajaTormasi);
117        AddCollisionHandler(Pelaaja1, "rotta", PelaajaTormasi2);
118         AddCollisionHandler(Pelaaja1, "health", PelaajaParanee);
119         Pelaaja1.Tag = "pelaaja";
120
121
122
123    }
124
125    void LuoSeina1(Vector paikka, double leveys, double korkeus)
126    {
127
128
129        PhysicsObject Seinä1 = PhysicsObject.CreateStaticObject(50, 50);
130        Seinä1.Shape = Shape.Circle;
131        Seinä1.Position = paikka;
132        Add(Seinä1);
133        Image Seinä = LoadImage("Seinä1");
134        Seinä1.Image = Seinä;
135        Seinä1.CollisionIgnoreGroup = 1;
136
137
138
139
140
141
142    }
143    void LuoPotion(Vector paikka, double leveys, double korkeus)
144    {
145
146        PhysicsObject Potion = new PhysicsObject(30, 30);
147        Image HpPotion = LoadImage("Hp Potion");
148        Potion.Image = HpPotion;
149        Add(Potion);
150        Potion.Position = paikka;
151        Potion.Tag = "health";
152
153
154    }
155
156    void LuoRotta(Vector paikka, double leveys, double korkeus)
157    {
158
159        PhysicsObject Rotta = new PhysicsObject(30, 30);
160        Image Rottga = LoadImage("Rottqa");
161        Rotta.Image = Rottga;
162        Rotta.Position = paikka;
163        Add(Rotta);
164        Rotta.Tag = "rotta";
165       
166FollowerBrain seuraajaAivot = new FollowerBrain("pelaaja");
167    seuraajaAivot.Speed = 300;                 
168seuraajaAivot.DistanceFar = 600;           
169seuraajaAivot.DistanceClose = 200;       
170seuraajaAivot.StopWhenTargetClose = true;
171
172 Rotta.Brain = seuraajaAivot;
173
174
175    }
176
177    void LuoLepakko(Vector paikka, double leveys, double korkeus)
178    {
179
180
181        PhysicsObject Lepakko = new PhysicsObject(50, 50);
182        Image Leppakko = LoadImage("Leppakko");
183        Lepakko.Image = Leppakko;
184        Add(Lepakko);
185        RandomMoverBrain satunnaisAivot = new RandomMoverBrain(200);
186        satunnaisAivot.ChangeMovementSeconds = 3;
187        satunnaisAivot.WanderRadius = 200;
188
189        Lepakko.Brain = satunnaisAivot;
190        Lepakko.Position = paikka;
191
192
193        Lepakko.Tag = "pahis";
194       
195
196
197
198
199
200
201
202    }
203    void LuoElamanLaskuri()
204    {
205
206        elamaLaskuri = new DoubleMeter(10);
207        elamaLaskuri.MaxValue = 10;
208        elamaLaskuri.LowerLimit += ElamaLoppui;
209
210        ProgressBar elamaPalkki = new ProgressBar(150, 20);
211        elamaPalkki.X = Screen.Left + 150;
212        elamaPalkki.Y = Screen.Top - 20;
213        elamaPalkki.BindTo(elamaLaskuri);
214        Add(elamaPalkki);
215        elamaPalkki.Angle = Angle.RightAngle;
216
217
218
219
220
221
222    }
223
224    void ElamaLoppui()
225    {
226
227
228        MessageDisplay.Add("kuolit.");
229  ClearAll();
230         LuoAlkuValikko();
231       
232
233
234
235    }
236
237    void PelaajaTormasi(PhysicsObject Pelaaja1, PhysicsObject Lepakko)
238    {
239
240        elamaLaskuri.Value--;
241
242
243
244        if (elamaLaskuri.Value == 0)
245            Pelaaja1.Destroy();
246       
247
248
249
250    }
251
252
253    void PelaajaTormasi2(PhysicsObject Pelaaja1, PhysicsObject Rotta)
254    {
255
256        elamaLaskuri.Value -=2;
257
258
259
260         if (elamaLaskuri.Value == 0)
261            Pelaaja1.Destroy();
262
263
264
265    }
266    void PelaajaParanee(PhysicsObject Pelaaja1, PhysicsObject Potion)
267    {
268
269        elamaLaskuri.Value += 5;
270
271        Potion.Destroy();
272
273
274    }
275}
Note: See TracBrowser for help on using the repository browser.