source: 2011/31/DanH/Dragonfighter/Dragonfighter/Dragonfighter/Peli.cs @ 2564

Revision 2564, 7.7 KB checked in by daalhaat, 8 years ago (diff)

Talletus.

Line 
1using System;
2
3using System.Collections.Generic;
4using Jypeli;
5using Jypeli.Assets;
6using Jypeli.Controls;
7using Jypeli.Effects;
8using Jypeli.Widgets;
9
10
11   public class Peli : PhysicsGame
12{
13
14
15       Image olionKuva = LoadImage("Thunderbolt3");
16       Image Fireball = LoadImage("Fireball2");
17       
18
19
20
21    const double nopeus = 450;
22    const double hyppyNopeus = 1500;
23    const int RUUDUN_KOKO = 50;
24
25    PlatformCharacter pelaaja1;
26    PlatformCharacter pelaaja2;
27   
28       Image Dragon = LoadImage("DragonStance");
29       Image Hunter = LoadImage("Hunter");
30
31    Image paikallaanVasemmalle = LoadImage("DragonStance");
32    Image paikallaanOikealle;
33
34       
35      Image[] kavelyVasemmalle = LoadImages("JuoksuOikein");
36   
37      Image[] kavelyOikealle;
38
39      Image paikallaanVasemmalle2 = LoadImage("Hunter");
40      Image paikallaanOikealle2;
41
42
43      Image[] kavelyVasemmalle2 = LoadImages("HunterJuoksu");
44
45      Image[] kavelyOikealle2;
46
47
48      DoubleMeter pelaaja1Elama;
49      DoubleMeter pelaaja2Elama;
50
51
52
53
54       
55       
56       
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71      public override void Begin()
72    {
73
74
75         
76
77         
78          pelaaja1Elama = new DoubleMeter( 100 );
79        pelaaja1Elama.MaxValue = 100;
80
81        pelaaja2Elama = new DoubleMeter(100);
82        pelaaja2Elama.MaxValue = 100;
83
84
85        paikallaanOikealle = Image.Mirror(paikallaanVasemmalle);
86        kavelyOikealle = Image.Mirror(kavelyVasemmalle);
87
88        paikallaanOikealle2 = Image.Mirror(paikallaanVasemmalle2);
89        kavelyOikealle2 = Image.Mirror(kavelyVasemmalle2);
90       
91
92        Gravity = new Vector(0, -900);
93
94        luoKentta();
95        lisaaNappaimet();
96
97        IsFullScreen = true;
98
99        Camera.ZoomToLevel();
100
101   
102      }
103
104
105
106     
107       
108
109
110
111    void luoKentta()
112    {
113
114       
115 
116       
117        TileMap kentta = TileMap.FromFile("kentta1.txt");
118        kentta.SetTileMethod('#', lisaaTaso);
119       ;
120        kentta.SetTileMethod('N', lisaaPelaaja);
121        kentta.SetTileMethod('X', lisaaPelaaja2);
122       
123        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
124        Level.CreateBorders();
125        Level.Background.CreateGradient(Color.White, Color.Blue);
126
127
128    }
129
130    void lisaaTaso(Vector paikka, double leveys, double korkeus)
131    {
132        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
133        taso.Position = paikka;
134        taso.Color = Color.White;
135        Add(taso);
136    }
137
138   
139   
140
141    void lisaaPelaaja(Vector paikka, double leveys, double korkeus)
142    {
143        pelaaja1 = new PlatformCharacter (leveys, korkeus);
144        pelaaja1.Position = paikka;
145        pelaaja1.Mass = 1.0;
146        pelaaja1.Image = Dragon;
147
148        pelaaja1.LeftIdleAnimation = new Animation(paikallaanVasemmalle);
149        pelaaja1.RightIdleAnimation = new Animation(paikallaanOikealle);
150
151        pelaaja1.CollisionIgnoreGroup = 1;
152
153        pelaaja1.Weapon = new PlasmaCannon(20, 5);
154
155        pelaaja1.Weapon.ProjectileCollision = AmmusOsui;
156
157
158
159        pelaaja1.LeftWalkingAnimation = new Animation(kavelyVasemmalle);
160        pelaaja1.RightWalkingAnimation = new Animation(kavelyOikealle);
161
162        BarGauge pelaaja1ElamaPalkki = new BarGauge(20, Screen.Width / 3);
163        pelaaja1ElamaPalkki.X = Screen.Left + Screen.Width / 5;
164        pelaaja1ElamaPalkki.Y = Screen.Top - 40;
165        pelaaja1ElamaPalkki.Angle = Angle.FromDegrees(90);
166        pelaaja1ElamaPalkki.BindTo(pelaaja1Elama);
167        pelaaja1ElamaPalkki.Color = Color.Black;
168        pelaaja1ElamaPalkki.BarColor = Color.Red;
169        Add(pelaaja1ElamaPalkki);
170
171       
172                   
173        Add(pelaaja1);
174    }
175
176
177
178    void lisaaPelaaja2(Vector paikka, double leveys, double korkeus)
179    {
180
181        pelaaja2 = new PlatformCharacter(leveys, korkeus);
182        pelaaja2.Position = paikka;
183        pelaaja2.Mass = 4.0;
184        pelaaja2.Image = Hunter;
185
186        pelaaja2.CollisionIgnoreGroup = 1;
187
188        pelaaja2.Weapon = new PlasmaCannon(20, 5);
189
190        pelaaja2.Weapon.ProjectileCollision = AmmusOsui2;
191
192        pelaaja2.LeftIdleAnimation = new Animation(paikallaanVasemmalle2);
193        pelaaja2.RightIdleAnimation = new Animation(paikallaanOikealle2);
194
195
196        pelaaja2.LeftWalkingAnimation = new Animation(kavelyVasemmalle2);
197        pelaaja2.RightWalkingAnimation = new Animation(kavelyOikealle2);
198
199
200
201   
202       
203       
204        BarGauge pelaaja2ElamaPalkki = new BarGauge(20, Screen.Width / 3);
205        pelaaja2ElamaPalkki.X = Screen.Right - Screen.Width / 4;
206        pelaaja2ElamaPalkki.Y = Screen.Top - 40;
207        pelaaja2ElamaPalkki.Angle = Angle.FromDegrees(-90);
208        pelaaja2ElamaPalkki.BindTo(pelaaja2Elama);
209        pelaaja2ElamaPalkki.Color = Color.Black;
210        pelaaja2ElamaPalkki.BarColor = Color.Red;
211        Add(pelaaja2ElamaPalkki);
212
213
214
215        Add(pelaaja2);
216
217    }
218
219       
220
221    void lisaaNappaimet()
222    {
223        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
224        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
225
226        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, - nopeus);
227        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
228        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
229        Keyboard.Listen(Key.L, ButtonState.Pressed, AmmuAseella, "Ammu");
230
231        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
232
233        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
234        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
235        ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
236
237
238        Keyboard.Listen(Key.A, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja2, -nopeus);
239        Keyboard.Listen(Key.D, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja2, nopeus);
240        Keyboard.Listen(Key.W, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja2, hyppyNopeus);
241        Keyboard.Listen(Key.G, ButtonState.Pressed, AmmuAseella2, "Ammu" );
242   
243   
244   
245                                                                 
246    }
247
248    void liikuta(PlatformCharacter hahmo, double nopeus)
249    {
250        hahmo.Walk(nopeus
251);
252    }
253
254    void hyppaa(PlatformCharacter hahmo, double nopeus)
255    {
256        hahmo.Jump(nopeus);
257    }
258     
259
260
261    void AmmuAseella()
262    {
263        PhysicsObject ammus = pelaaja1.Weapon.Shoot();
264       
265        if (ammus != null)
266        {
267            ammus.Size *= 5;
268            ammus.CollisionIgnoreGroup = 2;
269            ammus.Image = Fireball;
270        }
271    }
272
273    void AmmuAseella2()
274    {
275        PhysicsObject ammus2 = pelaaja2.Weapon.Shoot();
276
277        if (ammus2 != null)
278        {
279            ammus2.Size *= 5;
280            ammus2.CollisionIgnoreGroup = 3;
281            ammus2.Color = Color.Blue;
282            ammus2.Image = olionKuva;
283
284        }
285       
286   
287   
288   
289   
290    }
291
292    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
293    {
294        ammus.Destroy();
295       
296        if (kohde == pelaaja2)
297        {
298            pelaaja2Elama.Value--;
299        }
300
301       
302       
303    }
304
305    void AmmusOsui2(PhysicsObject ammus2, PhysicsObject kohde)
306    {
307
308        if (kohde == pelaaja1)
309        {
310            pelaaja1Elama.Value--;
311        }
312        ammus2.Destroy();
313       
314       
315    }
316
317
318
319       
320   
321   
322   
323   
324}
Note: See TracBrowser for help on using the repository browser.