source: 2015/24/UunoT/testing/testing/testing/testing.cs @ 8992

Revision 8992, 8.5 KB checked in by npo17_46, 2 years ago (diff)

Joo

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class testing : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14    IntMeter keratytEsineet;
15
16    PhysicsObject Portaali;
17    PlatformCharacter pelaaja1;
18    IntMeter laskuri;
19    TileMap kentta;
20    List<PhysicsObject> seinaPalat = new List<PhysicsObject>();
21    Image mankuva = LoadImage("kakkakigkre");
22
23    DoubleMeter alaspainLaskuri;
24    Timer aikaLaskuri;
25   
26
27    Image pelaajanKuva = LoadImage("norsu");
28    Image tahtiKuva = LoadImage("tahti");
29
30    SoundEffect maaliAani = LoadSoundEffect("maali");
31
32    public override void Begin()
33    {
34        AloitaPeli();
35    }
36    void AloitaPeli ()
37    {
38        Gravity = new Vector(0, -1000);
39
40        LisaaLaskuri();
41        LuoKentta();
42        LisaaNappaimet();
43        Keraa();
44        LuoAikaLaskuri();
45
46
47        Camera.Follow(pelaaja1);
48        Camera.ZoomFactor = 1.2;
49        Camera.StayInLevel = true;
50    }
51
52    void LuoKentta()
53    {
54        kentta = TileMap.FromLevelAsset("kentta1");
55        kentta.SetTileMethod('#', LisaaTaso);
56        kentta.SetTileMethod('*', LisaaTahti);
57        kentta.SetTileMethod('N', LisaaPelaaja);
58
59        kentta.SetTileMethod('p', spawneri);
60        kentta.SetTileMethod('V', LuoPortaali);
61        kentta.SetTileMethod('S', Seina);
62
63       
64
65        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
66        Level.CreateBorders();
67        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
68    }
69
70    void LisaaTaso(Vector paikka, double leveys, double korkeus)
71    {
72        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
73        taso.Position = paikka;
74        taso.Color = Color.Green;
75        Add(taso);
76        taso.Tag = "seinä";
77    }
78
79    void LisaaTahti(Vector paikka, double leveys, double korkeus)
80    {
81        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
82        tahti.IgnoresCollisionResponse = true;
83        tahti.Position = paikka;
84        tahti.Image = tahtiKuva;
85        tahti.Tag = "tahti";
86        Add(tahti);
87       
88    }
89
90    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
91    {
92        pelaaja1 = new PlatformCharacter(leveys, korkeus);
93        pelaaja1.Position = paikka;
94        pelaaja1.Mass = 4.0;
95        pelaaja1.Image = pelaajanKuva;
96        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
97        AddCollisionHandler(pelaaja1, "pahis", PelaajaOsuu);
98        AddCollisionHandler(pelaaja1, "voitto", TormaaPortaaliin);
99
100        Add(pelaaja1);
101    }
102
103    void LisaaNappaimet()
104    {
105        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
106        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
107
108        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
109        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
110        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
111        Keyboard.Listen(Key.R, ButtonState.Pressed, AloitaUusiPeli, "Restart");
112        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
113
114        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
115        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
116        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
117
118        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
119    }
120
121
122    void Liikuta(PlatformCharacter hahmo, double nopeus)
123    {
124        hahmo.Walk(nopeus);
125    }
126
127    void Hyppaa(PlatformCharacter hahmo, double nopeus)
128    {
129        hahmo.Jump(nopeus);
130    }
131
132    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
133    {
134        maaliAani.Play();
135        MessageDisplay.Add("Keräsit tähden!");
136        tahti.Destroy();
137        keratytEsineet.Value += 1;
138       
139    }
140    void AddMonster(Vector paikka)
141    {
142        PhysicsObject man = new PhysicsObject(5.0, 5.0);
143        man.Image = mankuva;
144       
145       
146        man.Position = paikka;
147        man.Tag = "pahis";
148        Add(man);
149
150
151
152        man.Brain = new RandomMoverBrain();
153        Timer ajastin = new Timer();
154        ajastin.Interval = 1;
155        ajastin.Timeout += delegate { kranaatti(man); };
156        ajastin.Start();
157
158    }
159
160
161   
162
163
164    void PelaajaOsuu(PhysicsObject pelaaja1, PhysicsObject kohde)
165    {
166       
167       
168        laskuri.Value--;
169
170       
171        if (laskuri.Value <= 0)
172            pelaaja1.Destroy();
173    }
174
175    void kranaatti(PhysicsObject man)
176    {
177        Grenade kranu = new Grenade(6.0);
178        man.Throw(kranu, Angle.FromDegrees(30), 10000);
179        kranu.Tag = "pahis";
180
181    }
182
183    void spawneri(Vector paikka, double leveys, double korkeus)
184    {
185        Timer kutsuja = new Timer();
186        kutsuja.Interval = 0.25;
187        kutsuja.Timeout += delegate { AddMonster(paikka); };
188        kutsuja.Start();
189    }
190
191    void LisaaLaskuri()
192    {
193        LuoPisteLaskuri(Screen.Left + 100.0, Screen.Bottom + 100.0);
194    }
195
196    void LuoPisteLaskuri(double x, double y)
197    {
198        laskuri = new IntMeter(15000);
199        laskuri.MaxValue = 15000;
200
201        Label naytto = new Label();
202        naytto.X = x;
203        naytto.Y = y;
204        naytto.TextColor = Color.Black;
205        naytto.BorderColor = Color.Green;
206        naytto.Color = Color.Red;
207
208        naytto.BindTo(laskuri);
209        Add(naytto);
210        naytto.Title = "Elämä";
211
212       
213
214
215
216    }
217    void Keraa()
218    {
219        keratytEsineet = new IntMeter(0);
220
221        keratytEsineet.MaxValue = 5;
222        keratytEsineet.UpperLimit += KaikkiKeratty;
223    }
224
225
226
227
228
229
230    //kakkkos peplaaaja mikekasd mies ja ykkös velhkksdhlahohoohohho velho kk
231
232    void KaikkiKeratty()
233    {
234        MessageDisplay.Add("Portit aukeavat!");
235
236        foreach (PhysicsObject seina in seinaPalat)
237        {
238            seina.Destroy();
239        }
240       // MultiSelectWindow VoittoValikko = new MultiSelectWindow("Sinä Voitit!",
241//"Uudestaa?", "Lopeta");
242        //Add(VoittoValikko);
243        //VoittoValikko.AddItemHandler(0, AloitaUusiPeli);
244        //VoittoValikko.AddItemHandler(1, Exit);
245    }
246    void AloitaUusiPeli()
247    {
248        ClearAll();
249        AloitaPeli();
250
251    }
252    void LuoPortaali(Vector paikka, double leveys, double korkeus)
253    {
254        Portaali = new PhysicsObject (30.0, 30.0);
255        Portaali.Shape = Shape.Circle;
256        Portaali.Color = Color.Purple;
257        Portaali.Position = paikka;
258        Portaali.Tag = "voitto";
259       
260        Add (Portaali);
261
262       
263
264       
265
266       
267         
268       
269    }
270    void Seina(Vector paikka, double leveys, double korkeus)
271    {
272        PhysicsObject Seina = PhysicsObject.CreateStaticObject(leveys, korkeus);
273        Seina.Position = paikka;
274        Seina.Color = Color.Gray;
275        Add(Seina);
276        seinaPalat.Add(Seina);
277       
278    }
279    void TormaaPortaaliin(PhysicsObject pelaaja1, PhysicsObject kohde)
280    {
281       
282       
283        WIN();
284    }
285    void WIN()
286    {
287        MultiSelectWindow VoittoValikko = new MultiSelectWindow("Sinä Voitit!",
288"Uudestaa?", "Lopeta");
289        Add(VoittoValikko);
290        VoittoValikko.AddItemHandler(0, AloitaUusiPeli);
291        VoittoValikko.AddItemHandler(1, Exit);
292    }
293
294
295
296    void LuoAikaLaskuri()
297    {
298        alaspainLaskuri = new DoubleMeter(60.9);
299
300        aikaLaskuri = new Timer();
301        aikaLaskuri.Interval = 0.1;
302        aikaLaskuri.Timeout += LaskeAlaspain;
303        aikaLaskuri.Start();
304       
305       
306
307        Label aikaNaytto = new Label();
308        aikaNaytto.TextColor = Color.Black;
309        aikaNaytto.DecimalPlaces = 1;
310        aikaNaytto.BindTo(alaspainLaskuri);
311        aikaNaytto.X = Screen.Right- 50.0;
312        aikaNaytto.Y = Screen.Top- 50.0;
313        Add(aikaNaytto);
314       
315    }
316
317    void LaskeAlaspain()
318    {
319        alaspainLaskuri.Value -= 0.1;
320
321        if (alaspainLaskuri.Value <= 0)
322        {
323            MessageDisplay.Add("Aika loppui ja lagi alkaa!");
324            aikaLaskuri.Stop();
325
326           
327        }
328
329    }
330
331
332
333   
334
335}
Note: See TracBrowser for help on using the repository browser.