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

Revision 9211, 6.6 KB checked in by otosjahn, 2 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 Dungeous : PhysicsGame
10{
11
12    const double nopeus = 200;
13    const double hyppyNopeus = 600;
14    const int RUUDUN_KOKO = 40;
15
16    PlatformCharacter pelaaja1;
17    PlatformCharacter pelaaja2;
18   
19
20
21    Vector pelaaja1paikka;
22
23
24
25    Vector pelaaja2paikka;
26
27 
28
29    Image taustakuva = LoadImage("Taustakuva");
30    Image pelaajan2kuva = LoadImage("thernep2");
31    Image pelaajankuva = LoadImage("thernep1");
32
33    Image panos = LoadImage("ammus");
34
35
36    int kenttaNro = 1;
37
38    SoundEffect aseenAani = LoadSoundEffect("aseenAani");
39    SoundEffect Kuolemaaani = LoadSoundEffect("csgo");
40
41
42    // SoundEffect maaliAani = LoadSoundEffect("maali");
43    public override void Begin()
44    {
45
46        ClearAll();
47        Gravity = new Vector(0, -1000);
48
49        kenttaNro = RandomGen.NextInt(1, 3);
50
51
52
53        luoKentta();
54        LisaaNappaimet();
55        //SeuraavaKentta();
56
57
58    }
59
60
61
62
63
64
65    void luoKentta()
66    {
67        TileMap kentta = TileMap.FromLevelAsset("kentta"+kenttaNro);
68        kentta.SetTileMethod('#', LisaaTaso);
69     
70        kentta.SetTileMethod('N', LuoPelaaja);
71        kentta.SetTileMethod('I', LuoPelaaja2);
72       
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
92
93    void LuoPelaaja2(Vector paikka, double leveys, double korkeus)
94    {
95        pelaaja2 = new PlatformCharacter(leveys + 20, korkeus);
96        pelaaja2.Position = paikka;
97        pelaaja2.X -= 100;
98        pelaaja2.Mass = 4.0;
99        pelaaja2.Image = pelaajan2kuva;
100
101        pelaaja2paikka = paikka;
102
103
104        Add(pelaaja2);
105        pelaaja2.Tag = "pelaaja2";
106
107        pelaaja2.Weapon = new AssaultRifle(80, 40);
108        pelaaja2.Weapon.Ammo.Value = 15;
109        pelaaja2.Weapon.ProjectileCollision = AmmusOsui;
110        pelaaja2.Weapon.X = 18;
111        pelaaja2.Weapon.Y = 0.0;
112        pelaaja2.Weapon.Image = LoadImage("pistooli");
113
114        pelaaja2.Weapon.AttackSound = aseenAani;
115        pelaaja2.Weapon.FireRate = 2.0;
116    }
117
118    void LuoPelaaja (Vector paikka, double leveys, double korkeus)
119    {
120        pelaaja1 = new PlatformCharacter(leveys +20, korkeus);
121        pelaaja1.Position = paikka;
122        pelaaja1paikka = paikka;
123       
124        pelaaja1.Mass = 4.0;
125        pelaaja1.Image = pelaajankuva;
126        pelaaja1.Tag = "pelaaja";
127
128        Add(pelaaja1);
129
130        pelaaja1.Weapon = new AssaultRifle(80, 40);
131        pelaaja1.Weapon.Ammo.Value = 15;
132        pelaaja1.Weapon.ProjectileCollision = AmmusOsui;
133        pelaaja1.Weapon.X = 18;
134        pelaaja1.Weapon.Y = 0.0;
135        pelaaja1.Weapon.Image = LoadImage("pistooli");
136
137        pelaaja1.Weapon.AttackSound = aseenAani;
138        pelaaja1.Weapon.FireRate = 2.0;
139    }
140    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
141    {
142        ammus.Destroy();
143        if (kohde.Tag == "pelaaja" || kohde.Tag == "pelaaja2")
144        {
145            kohde.Destroy();
146            Kuolemaaani.Play();
147            if (kohde.Tag.Equals("pelaaja"))
148            {
149               
150            }
151            if (kohde.Tag.Equals("pelaaja2"))
152            {
153               
154            }
155
156           
157
158
159            int elossa = 2;
160            if (pelaaja1.IsDestroyed || pelaaja1.IsDestroying) elossa -= 1;
161            if (pelaaja2.IsDestroyed || pelaaja2.IsDestroying) elossa -= 1;
162         
163            if (elossa ==1)
164            {
165                Begin();
166            }
167
168            //pelaaja1.Position = pelaaja1paikka;
169            //pelaaja2.Position = pelaaja2paikka;
170            //pelaaja3.Position = pelaaja3paikka;
171        }
172    }
173
174
175   
176    void AmmuAseella(PlatformCharacter pelaaja)
177   
178    {
179        PhysicsObject ammus = pelaaja.Weapon.Shoot();
180
181        if (ammus != null)
182        {
183            ammus.Velocity *= 2;
184            //ammus.Size *= 3;
185            ammus.Image = panos;
186            ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
187         
188
189        }
190    }
191 
192
193    void LisaaNappaimet()
194    {
195        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
196        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
197
198        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
199        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
200        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
201
202
203        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja2, -nopeus);
204        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja2, nopeus);
205        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja2, hyppyNopeus);
206
207
208        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
209
210        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
211        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
212        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
213
214        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
215
216        Keyboard.Listen(Key.Period, ButtonState.Down, AmmuAseella, "Ammu", pelaaja2);
217        Keyboard.Listen(Key.T, ButtonState.Down, AmmuAseella, "Ammu", pelaaja1);
218       
219       
220    }
221   
222    void Liikuta(PlatformCharacter hahmo, double nopeus)
223    {
224        hahmo.Walk(nopeus);
225    }
226
227    void Hyppaa(PlatformCharacter hahmo, double nopeus)
228    {
229        hahmo.Jump(nopeus);
230    }
231
232
233
234    //void SeuraavaKentta()
235    //{
236    //    ClearAll();
237    //    if (kenttaNro > 2) ;
238    //    else luoKentta("kentta1" + kenttaNro);
239       
240
241    //    AsetaOhjaimet();
242    //}
243
244
245}
Note: See TracBrowser for help on using the repository browser.