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

Revision 5089, 7.3 KB checked in by uutapper, 8 years ago (diff)

Lisäsin Pelin koodiin ja tein mäppiä

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
17    PlatformCharacter pelaaja1;
18    IntMeter laskuri;
19    TileMap kentta;
20    List<PhysicsObject> seinaPalat = new List<PhysicsObject>();
21   
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', Portaali);
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    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
86    {
87        pelaaja1 = new PlatformCharacter(leveys, korkeus);
88        pelaaja1.Position = paikka;
89        pelaaja1.Mass = 4.0;
90        pelaaja1.Image = pelaajanKuva;
91        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
92        AddCollisionHandler(pelaaja1, "pahis", PelaajaOsuu);
93        Add(pelaaja1);
94    }
95
96    void LisaaNappaimet()
97    {
98        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
99        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
100
101        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
102        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
103        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
104
105        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
106
107        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
108        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
109        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
110
111        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
112    }
113
114
115    void Liikuta(PlatformCharacter hahmo, double nopeus)
116    {
117        hahmo.Walk(nopeus);
118    }
119
120    void Hyppaa(PlatformCharacter hahmo, double nopeus)
121    {
122        hahmo.Jump(nopeus);
123    }
124
125    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
126    {
127        maaliAani.Play();
128        MessageDisplay.Add("Keräsit tähden!");
129        tahti.Destroy();
130        keratytEsineet.Value += 1;
131       
132    }
133    void AddMonster(Vector paikka)
134    {
135        PhysicsObject man = new PhysicsObject(40.0, 40.0);
136        man.Shape = Shape.Star;
137        man.Color = Color.Yellow;
138        man.Position = paikka;
139        man.Tag = "pahis";
140        Add(man);
141
142        man.Brain = new LabyrinthWandererBrain(RUUDUN_KOKO, 100.0, "seinä");
143        Timer ajastin = new Timer();
144        ajastin.Interval = 1.5;
145        ajastin.Timeout += delegate { kranaatti(man); };
146        ajastin.Start();
147
148    }
149
150
151    void Monster()
152    {
153       
154    }
155
156
157    void PelaajaOsuu(PhysicsObject pelaaja1, PhysicsObject kohde)
158    {
159       
160       
161        laskuri.Value--;
162
163       
164        if (laskuri.Value <= 0)
165            pelaaja1.Destroy();
166    }
167
168    void kranaatti(PhysicsObject man)
169    {
170        Grenade kranu = new Grenade(4.0);
171        man.Throw(kranu, Angle.FromDegrees(30), 10000);
172        kranu.Tag = "pahis";
173
174    }
175
176    void spawneri(Vector paikka, double leveys, double korkeus)
177    {
178        Timer kutsuja = new Timer();
179        kutsuja.Interval = 60.0;
180        kutsuja.Timeout += delegate { AddMonster(paikka); };
181        kutsuja.Start();
182    }
183
184    void LisaaLaskuri()
185    {
186        LuoPisteLaskuri(Screen.Left + 100.0, Screen.Bottom + 100.0);
187    }
188
189    void LuoPisteLaskuri(double x, double y)
190    {
191        laskuri = new IntMeter(3);
192        laskuri.MaxValue = 3;
193
194        Label naytto = new Label();
195        naytto.X = x;
196        naytto.Y = y;
197        naytto.TextColor = Color.Black;
198        naytto.BorderColor = Color.Green;
199        naytto.Color = Color.Red;
200
201        naytto.BindTo(laskuri);
202        Add(naytto);
203        naytto.Title = "Elämä";
204
205       
206
207
208
209    }
210    void Keraa()
211    {
212        keratytEsineet = new IntMeter(0);
213
214        keratytEsineet.MaxValue = 5;
215        keratytEsineet.UpperLimit += KaikkiKeratty;
216    }
217
218
219
220
221
222
223
224
225    void KaikkiKeratty()
226    {
227        MessageDisplay.Add("Portit aukeavat!");
228
229        foreach (PhysicsObject seina in seinaPalat)
230        {
231            seina.Destroy();
232        }
233       
234       
235       // MultiSelectWindow VoittoValikko = new MultiSelectWindow("Sinä Voitit!",
236//"Uudestaa?", "Lopeta");
237        //Add(VoittoValikko);
238        //VoittoValikko.AddItemHandler(0, AloitaUusiPeli);
239        //VoittoValikko.AddItemHandler(1, Exit);
240    }
241    void AloitaUusiPeli()
242    {
243        ClearAll();
244        AloitaPeli();
245
246    }
247    void Portaali(Vector paikka, double leveys, double korkeus)
248    {
249        PhysicsObject Portaali = new PhysicsObject (30.0, 30.0 );
250        Portaali.Shape = Shape.Circle;
251        Portaali.Color = Color.Purple;
252        Portaali.Position = paikka;
253        Add (Portaali);
254
255       
256         
257       
258    }
259    void Seina(Vector paikka, double leveys, double korkeus)
260    {
261        PhysicsObject Seina = PhysicsObject.CreateStaticObject(leveys, korkeus);
262        Seina.Position = paikka;
263        Seina.Color = Color.Gray;
264        Add(Seina);
265        seinaPalat.Add(Seina);
266       
267    }
268    void TormaaPortaaliin(PhysicsObject hahmo, PhysicsObject Portaali)
269    {
270        WIN();
271    }
272    void WIN()
273    {
274        MultiSelectWindow VoittoValikko = new MultiSelectWindow("Sinä Voitit!",
275"Uudestaa?", "Lopeta");
276        Add(VoittoValikko);
277        VoittoValikko.AddItemHandler(0, AloitaUusiPeli);
278        VoittoValikko.AddItemHandler(1, Exit);
279    }
280
281
282
283
284
285
286
287
288
289
290
291
292}
Note: See TracBrowser for help on using the repository browser.