source: 2014/26/UunoT/testing/testing/testing/testing.cs @ 5106

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