source: 2014/27/JesseN/peli/peli/peli/peli.cs @ 5291

Revision 5291, 8.1 KB checked in by jeniemel, 8 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 peli : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14    IntMeter Respawnlaskuri=new IntMeter(3);
15    IntMeter Respawnlaskuri2=new IntMeter(3);
16    DoubleMeter elamaLaskuri;
17    DoubleMeter elamaLaskuri2;
18    PlatformCharacter pelaaja1;
19    PlatformCharacter pelaaja2;
20    Image pelaajanKuva = LoadImage("alieni");
21    Image pelaajanKuva2 = LoadImage("pelaajakuva1");
22    Image tahtiKuva = LoadImage("laatikko");
23    Image Tiilikuva = LoadImage("tiili"); 
24    SoundEffect maaliAani = LoadSoundEffect("maali");
25    SoundEffect piu = LoadSoundEffect("basso_piu2");
26    Image taustaKuva = LoadImage("miehet");
27
28   //SoundEffect 8bit= LoadSoundEffect("8bit");
29   
30    Vector Aloituspaikka;
31    Vector Aloituspaikka2;
32
33    //private Image[] ukkelinKavely = LoadImages("pelaajakuva2", "pelaajakuva3");
34
35    public override void Begin()
36    {
37        SmoothTextures = false;
38        AloitaPeli();
39    }
40   
41    void AloitaPeli()
42    {
43        ClearAll();
44        Gravity = new Vector(0, -1000);
45
46        LuoKentta();
47        LisaaNappaimet();
48        LuoElamaLaskuri();
49        LuoElamaLaskuriPelaaja2();
50        Level.Background.Image = taustaKuva;
51        Level.Background.FitToLevel();
52        //Camera.;
53        //Camera.ZoomFactor = 1.0;
54        //Camera.StayInLevel = true;
55    }
56
57    void LuoElamaLaskuri()
58    {
59        elamaLaskuri = new DoubleMeter(10);
60        elamaLaskuri.MaxValue = 10;
61        elamaLaskuri.LowerLimit += ElamaLoppui;
62
63        ProgressBar elamaPalkki = new ProgressBar(150, 20);
64        elamaPalkki.X = Screen.Left + 150;
65        elamaPalkki.Y = Screen.Top - 20;
66        elamaPalkki.BindTo(elamaLaskuri);
67        Add(elamaPalkki);
68    }
69    void LuoElamaLaskuriPelaaja2()
70    {
71     
72        elamaLaskuri2 = new DoubleMeter(10);
73        elamaLaskuri2.MaxValue = 10;
74        elamaLaskuri2.LowerLimit += ElamaLoppui;
75
76        ProgressBar elamaPalkki2 = new ProgressBar(150, 20);
77        elamaPalkki2.X = Screen.Right - 150;
78        elamaPalkki2.Y = Screen.Top - 20;
79        elamaPalkki2.BindTo(elamaLaskuri2);
80        Add(elamaPalkki2);
81    }
82
83    void ElamaLoppui()
84    {
85
86        MessageDisplay.Add("Ur dead, what a suprise");
87    }
88
89   
90
91
92    void LuoKentta()
93    {
94     
95        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kentta1");
96
97       
98        MediaPlayer.Play("8bit");
99        MediaPlayer.IsRepeating = true;
100       
101        ruudut.SetTileMethod(Color.Blue, LisaaPelaaja2);
102        ruudut.SetTileMethod(Color.Red, LisaaPelaaja);
103        ruudut.SetTileMethod(Color.Black, LisaaTaso);
104       
105        //ruudut.SetTileMethod(Color.Black, LisaaTiili);
106        //ruudut.SetTileMethod(Color.Yellow, LuoTahti);
107
108     
109        ruudut.Execute(30, 30);
110   
111
112
113   
114        Level.CreateBorders();
115        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
116        Camera.ZoomToLevel();
117        //Camera.Follow(pelaaja1, pelaaja2);
118        //Camera.StayInLevel = true;
119    }
120
121    void LisaaTaso(Vector paikka, double leveys, double korkeus)
122    {
123        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
124        taso.Position = paikka;
125        taso.Image = Tiilikuva;
126        Add(taso);
127    }
128
129    void LisaaTahti(Vector paikka, double leveys, double korkeus)
130    {
131        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
132        tahti.IgnoresCollisionResponse = true;
133        tahti.Position = paikka;
134        tahti.Image = tahtiKuva;
135        tahti.Tag = "tahti";
136        Add(tahti);
137    }
138
139    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
140    {
141        pelaaja1 = new PlatformCharacter(leveys, korkeus);
142        pelaaja1.Position = paikka;
143        pelaaja1.Mass = 4.0;
144        pelaaja1.Image = pelaajanKuva;
145        pelaaja1.Tag = "pelaaja1";
146        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
147        pelaaja1.Weapon = new AssaultRifle(0, 0);
148        pelaaja1.Weapon.Ammo.Value = 1000;
149        pelaaja1.Weapon.ProjectileCollision = AmmusOsui;
150        pelaaja1.Weapon.AttackSound = piu;
151
152        Add(pelaaja1);
153        Aloituspaikka = paikka;
154       
155       
156    }
157
158    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
159    {
160        if (kohde.Tag == "pelaaja1")
161        {
162            elamaLaskuri.Value--;
163            if (elamaLaskuri.Value < 1)
164            {
165
166                pelaaja1.Destroy();
167                pelaaja1.Weapon.Destroy();
168                Respawnlaskuri.Value--;
169                if (Respawnlaskuri.Value > 0)
170                {
171                    Timer.SingleShot(5, AloitaPeli);
172                }
173            }
174       
175        }
176        else if (kohde.Tag == "pelaaja2")
177        {
178
179            elamaLaskuri2.Value--;
180            if (elamaLaskuri2.Value < 1)
181            {
182
183                pelaaja2.Destroy();
184                pelaaja2.Weapon.Destroy();
185                Respawnlaskuri2.Value--;
186                if (Respawnlaskuri2.Value > 0)
187                {
188                    Timer.SingleShot(5, AloitaPeli);
189                }
190            }
191       
192        }
193        ammus.Destroy();
194    }
195
196    void LisaaPelaaja2(Vector paikka, double leveys, double korkeus)
197    {
198        pelaaja2 = new PlatformCharacter(leveys, korkeus);
199        pelaaja2.Position = paikka;
200        pelaaja2.Mass = 4.0;
201        pelaaja2.Image = pelaajanKuva2;
202        pelaaja2.Weapon = new AssaultRifle(0, 0);
203        pelaaja2.Weapon.Ammo.Value = 1000;
204        pelaaja2.Weapon.ProjectileCollision = AmmusOsui;
205        AddCollisionHandler(pelaaja2, "tahti", TormaaTahteen);
206        pelaaja2.Tag = "pelaaja2";
207        Add(pelaaja2);
208        Aloituspaikka2 = paikka;
209        pelaaja2.Weapon.AttackSound = piu;
210    }
211
212   
213
214    void LisaaNappaimet()
215    {
216        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
217        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
218
219        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
220        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
221        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
222
223        Keyboard.Listen(Key.P, ButtonState.Down, AmmuAseella, "Ammu", pelaaja1);
224
225        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja2, -nopeus);
226        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja2, nopeus);
227        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja2, hyppyNopeus);
228
229        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
230        Keyboard.Listen(Key.T, ButtonState.Down, AmmuAseella, "Ammu", pelaaja2);
231        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
232        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
233        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
234
235        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
236    }
237
238    void Liikuta(PlatformCharacter hahmo, double nopeus)
239    {
240        hahmo.Walk(nopeus);
241    }
242
243    void Hyppaa(PlatformCharacter hahmo, double nopeus)
244    {
245        hahmo.Jump(nopeus);
246    }
247
248    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
249    {
250        maaliAani.Play();
251        MessageDisplay.Add("Suoja poistettu D:");
252        tahti.Destroy();
253    }
254    void AmmuAseella(PlatformCharacter pelaaja)
255    {
256        PhysicsObject ammus = pelaaja.Weapon.Shoot();
257
258        if (ammus != null)
259        {
260            ammus.Size *= 1;
261            ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
262        }
263    }
264}
Note: See TracBrowser for help on using the repository browser.