source: 2017/utsjoki/MihkkuL/Dungeous/Dungeous/Dungeous/Dungeous.cs @ 9185

Revision 9185, 9.6 KB checked in by otosjahn, 23 months 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 Dungeous : PhysicsGame
10{
11    private Animation pelajaan1kavely;
12
13    private Animation pelaajan1kavely;
14    const double nopeus = 200;
15    const double hyppyNopeus = 600;
16    const int RUUDUN_KOKO = 40;
17
18    PlatformCharacter pelaaja1;
19    PlatformCharacter pelaaja2;
20    PlatformCharacter pelaaja3;
21    PlatformCharacter pelaaja4;
22
23
24    Vector pelaaja1paikka;
25
26    Vector pelaaja3paikka;
27
28    Vector pelaaja2paikka;
29
30    Vector pelaaja4paikka;
31
32    Image taustakuva = LoadImage("Taustakuva");
33    Image pelaajan2kuva = LoadImage("thernep2");
34    Image pelaajankuva = LoadImage("thernep1");
35    Image pelaajan3kuva = LoadImage("thernep3");
36    Image pelaajan4kuva = LoadImage("thernep4");
37    Image panos = LoadImage("ammus");
38
39
40    int kenttaNro = 1;
41
42    SoundEffect aseenAani = LoadSoundEffect("aseenAani");
43    SoundEffect Kuolemaaani = LoadSoundEffect("csgo");
44   
45
46    // SoundEffect maaliAani = LoadSoundEffect("maali");
47    public override void Begin()
48    {
49        pelaajan1kavely = LoadAnimation("thernep1a");
50        ClearAll();
51        Gravity = new Vector(0, -1000);
52
53        kenttaNro = RandomGen.NextInt(1, 3);
54
55       
56
57        luoKentta();
58        LisaaNappaimet();
59        //SeuraavaKentta();
60       
61
62    }
63
64    void luoKentta()
65    {
66        TileMap kentta = TileMap.FromLevelAsset("kentta"+kenttaNro);
67        kentta.SetTileMethod('#', LisaaTaso);
68     
69        kentta.SetTileMethod('N', LuoPelaaja);
70        kentta.SetTileMethod('I', LuoPelaaja2);
71        kentta.SetTileMethod('O', LuoPelaaja3);
72        kentta.SetTileMethod('P', LuoPelaaja4);
73        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
74        //Level.CreateBorders();
75        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
76
77        MediaPlayer.Play(RandomGen.SelectOne("Taustamusiikki","Taustamusiikki2","Taustamusiikki3","Taustamusiikki4"));
78       
79        Level.Background.Image = taustakuva;
80        Camera.ZoomToLevel();
81    }
82
83    void LisaaTaso(Vector paikka, double leveys, double korkeus)
84    {
85        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
86        taso.Position = paikka;
87        taso.Color = Color.Green;
88        Add(taso);
89    }
90
91    void LuoPelaaja3(Vector paikka, double leveys, double korkeus)
92    {
93        pelaaja3 = new PlatformCharacter(leveys + 20, korkeus);
94        pelaaja3.Position = paikka;
95        pelaaja3.X -= 100;
96        pelaaja3.Mass = 4.0;
97        pelaaja3.Image = pelaajan3kuva;
98
99        pelaaja3paikka = paikka;
100
101        Add(pelaaja3);
102        pelaaja3.Tag = "pelaaja3";
103
104        pelaaja3.Weapon = new AssaultRifle(80, 40);
105        pelaaja3.Weapon.Ammo.Value = 15;
106        pelaaja3.Weapon.ProjectileCollision = AmmusOsui;
107        pelaaja3.Weapon.X = 18;
108        pelaaja3.Weapon.Y = 0.0;
109        pelaaja3.Weapon.Image = LoadImage("pistooli");
110
111        pelaaja3.Weapon.AttackSound = aseenAani;
112        pelaaja3.Weapon.FireRate = 2.0;
113    }
114
115    void LuoPelaaja4(Vector paikka, double leveys, double korkeus)
116    {
117        pelaaja4 = new PlatformCharacter(leveys + 20, korkeus);
118        pelaaja4.Position = paikka;
119        pelaaja4.X -= 100;
120        pelaaja4.Mass = 4.0;
121        pelaaja4.Image = pelaajan4kuva;
122
123        pelaaja4paikka = paikka;
124
125
126        Add(pelaaja4);
127        pelaaja4.Tag = "pelaaja4";
128
129        pelaaja4.Weapon = new AssaultRifle(80, 40);
130        pelaaja4.Weapon.Ammo.Value = 15;
131        pelaaja4.Weapon.ProjectileCollision = AmmusOsui;
132        pelaaja4.Weapon.X = 18;
133        pelaaja4.Weapon.Y = 0.0;
134        pelaaja4.Weapon.Image = LoadImage("pistooli");
135
136        pelaaja4.Weapon.AttackSound = aseenAani;
137        pelaaja4.Weapon.FireRate = 2.0;
138    }
139
140
141    void LuoPelaaja2(Vector paikka, double leveys, double korkeus)
142    {
143        pelaaja2 = new PlatformCharacter(leveys + 20, korkeus);
144        pelaaja2.Position = paikka;
145        pelaaja2.X -= 100;
146        pelaaja2.Mass = 4.0;
147        pelaaja2.Image = pelaajan2kuva;
148
149        pelaaja2paikka = paikka;
150
151
152        Add(pelaaja2);
153        pelaaja2.Tag = "pelaaja2";
154
155        pelaaja2.Weapon = new AssaultRifle(80, 40);
156        pelaaja2.Weapon.Ammo.Value = 15;
157        pelaaja2.Weapon.ProjectileCollision = AmmusOsui;
158        pelaaja2.Weapon.X = 18;
159        pelaaja2.Weapon.Y = 0.0;
160        pelaaja2.Weapon.Image = LoadImage("pistooli");
161
162        pelaaja2.Weapon.AttackSound = aseenAani;
163        pelaaja2.Weapon.FireRate = 2.0;
164    }
165
166    void LuoPelaaja (Vector paikka, double leveys, double korkeus)
167    {
168        pelaaja1 = new PlatformCharacter(leveys +20, korkeus);
169        pelaaja1.Position = paikka;
170        pelaaja1paikka = paikka;
171       
172        pelaaja1.Mass = 4.0;
173        pelaaja1.Image = pelaajankuva;
174        pelaaja1.Tag = "pelaaja";
175
176        Add(pelaaja1);
177
178        pelaaja1.Weapon = new AssaultRifle(80, 40);
179        pelaaja1.Weapon.Ammo.Value = 15;
180        pelaaja1.Weapon.ProjectileCollision = AmmusOsui;
181        pelaaja1.Weapon.X = 18;
182        pelaaja1.Weapon.Y = 0.0;
183        pelaaja1.Weapon.Image = LoadImage("pistooli");
184
185        pelaaja1.Weapon.AttackSound = aseenAani;
186        pelaaja1.Weapon.FireRate = 2.0;
187    }
188    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
189    {
190        ammus.Destroy();
191        if (kohde.Tag == "pelaaja3" || kohde.Tag == "pelaaja" || kohde.Tag == "pelaaja2" || kohde.Tag == "pelaaja4")
192        {
193            kohde.Destroy();
194            Kuolemaaani.Play();
195            if (kohde.Tag.Equals("pelaaja"))
196            {
197               
198            }
199            if (kohde.Tag.Equals("pelaaja2"))
200            {
201               
202            }
203
204            if (kohde.Tag.Equals("pelaaja3"))
205            {
206               
207            }
208            if (kohde.Tag.Equals("pelaaja3"))
209            {
210
211            }
212
213
214
215            int elossa = 4;
216            if (pelaaja1.IsDestroyed || pelaaja1.IsDestroying) elossa -= 1;
217            if (pelaaja2.IsDestroyed || pelaaja2.IsDestroying) elossa -= 1;
218            if (pelaaja3.IsDestroyed || pelaaja3.IsDestroying) elossa -= 1;
219            if (pelaaja4.IsDestroyed || pelaaja3.IsDestroying) elossa -= 1;
220            if (elossa ==1)
221            {
222                Begin();
223            }
224
225            //pelaaja1.Position = pelaaja1paikka;
226            //pelaaja2.Position = pelaaja2paikka;
227            //pelaaja3.Position = pelaaja3paikka;
228        }
229    }
230
231
232   
233    void AmmuAseella(PlatformCharacter pelaaja)
234   
235    {
236        PhysicsObject ammus = pelaaja.Weapon.Shoot();
237
238        if (ammus != null)
239        {
240            ammus.Velocity *= 2;
241            //ammus.Size *= 3;
242            ammus.Image = panos;
243            ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
244         
245
246        }
247    }
248 
249
250    void LisaaNappaimet()
251    {
252        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
253        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
254
255        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
256        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
257        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
258
259
260        Keyboard.Listen(Key.NumPad4, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja3, -nopeus);
261        Keyboard.Listen(Key.NumPad6, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja3, nopeus);
262        Keyboard.Listen(Key.NumPad8, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja3, hyppyNopeus);
263
264        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja2, -nopeus);
265        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja2, nopeus);
266        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja2, hyppyNopeus);
267
268        Keyboard.Listen(Key.V, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja4, -nopeus);
269        Keyboard.Listen(Key.N, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja4, nopeus);
270        Keyboard.Listen(Key.G, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja4, hyppyNopeus);
271
272        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
273
274        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
275        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
276        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
277
278        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
279
280        Keyboard.Listen(Key.Period, ButtonState.Down, AmmuAseella, "Ammu", pelaaja2);
281        Keyboard.Listen(Key.T, ButtonState.Down, AmmuAseella, "Ammu", pelaaja1);
282        Keyboard.Listen(Key.Enter, ButtonState.Down, AmmuAseella, "Ammu", pelaaja3);
283        Keyboard.Listen(Key.Z, ButtonState.Down, AmmuAseella, "Ammu", pelaaja4);
284        //Mouse.ListenMovement(0.1, Tahtaa, "Tähtää aseella");
285    }
286   
287    void Liikuta(PlatformCharacter hahmo, double nopeus)
288    {
289        hahmo.Walk(nopeus);
290    }
291
292    void Hyppaa(PlatformCharacter hahmo, double nopeus)
293    {
294        hahmo.Jump(nopeus);
295    }
296
297
298
299    //void SeuraavaKentta()
300    //{
301    //    ClearAll();
302    //    if (kenttaNro > 2) ;
303    //    else luoKentta("kentta1" + kenttaNro);
304       
305
306    //    AsetaOhjaimet();
307    //}
308
309
310}
Note: See TracBrowser for help on using the repository browser.