source: 2012/24/LeeviL/Rangoneina/Rangoneina/Rangoneina/Rangoneina.cs @ 3091

Revision 3091, 8.5 KB checked in by leoslimi, 8 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Rangoneina : PhysicsGame
10{
11    Image RekurokaI = LoadImage("Rekuroka");
12    Image SerunomI = LoadImage("Serunom");
13    Image MerinomaI = LoadImage("Merinoma");
14    Image Vih1I = LoadImage("Vih1");
15    Image Vih2I = LoadImage("Vih2");
16    Image Vih3I = LoadImage("Vih3");
17    SoundEffect Kuolema = LoadSoundEffect("Kuolema");
18    PhysicsObject Rekuroka;
19    PhysicsObject Serunom;
20    PhysicsObject Merinoma;
21    IntMeter Pistelaskuri;
22    int kenttaNro = 1;
23    ScoreList topLista = new ScoreList(10, false, 1);
24    public override void Begin()
25    {
26         if (DataStorage.Exists("pisteet.xml"))
27            topLista = DataStorage.Load<ScoreList>(topLista, "pisteet.xml");
28             
29        MultiSelectWindow valikko = new MultiSelectWindow("Tervetudfloa Peliin", "Aloita Peli", "Parhaat Pisteet", "Lopeta");
30        valikko.ItemSelected += PainettiinValikkoNappia;
31        Add(valikko);
32
33       
34     
35
36       
37    }
38
39    void TallennaPisteet(Window Sender)
40    {
41        DataStorage.Save<ScoreList>(topLista, "pisteet.xml");
42
43        MultiSelectWindow valikko = new MultiSelectWindow("Tervetuloa Peliin", "Aloita Peli", "Parhaat Pisteet", "Lopeta");
44        valikko.ItemSelected += PainettiinValikkoNappia;
45        Add(valikko);
46    }
47
48    void LuoKentta(string KenttaTiedosto)
49    {
50        TileMap ruudut = TileMap.FromLevelAsset(KenttaTiedosto);
51        ruudut.SetTileMethod('=', LuoPalikka);
52        ruudut.SetTileMethod('T', LuoTahti);
53        ruudut.SetTileMethod('1', Vih1);
54        ruudut.SetTileMethod('2', Vih2);
55        ruudut.SetTileMethod('3', Vih3);
56        ruudut.SetTileMethod('R', LuoRekuroka);
57        ruudut.SetTileMethod('S', LuoSerunom);
58        ruudut.SetTileMethod('M', LuoMerinoma);
59        ruudut.SetTileMethod('W', LuoPiste);
60        ruudut.Execute(30,30);
61
62        Level.BackgroundColor = Color.Aqua;
63
64        Camera.Follow(Rekuroka);
65
66        LuoLaskuri();
67        LuoAikaLaskuri();
68    }
69
70    void SeuraavaKentta(int kenttaNro)
71    {
72        int pisteet = -1;
73        if (Pistelaskuri != null)
74        {
75            pisteet = Pistelaskuri.Value;
76        }
77
78        ClearAll();
79
80        AsetaOhjaimet();
81
82        if (kenttaNro == 1) LuoKentta("Kentta1");
83        else if (kenttaNro == 2) LuoKentta("Kentta2");
84        else if (kenttaNro == 3) LuoKentta("Kentta3");
85        else if (kenttaNro > 3) 
86        {
87            HighScoreWindow topIkkuna = new HighScoreWindow(
88"Parhaat Pisteet",
89"Onneksi olkoon!",
90topLista, Pistelaskuri.Value);
91            topIkkuna.Closed += TallennaPisteet;
92            Add(topIkkuna);
93        }
94
95        if (pisteet > 0)
96        {
97            Pistelaskuri.Value = pisteet;
98        }
99    }
100
101    void LuoRekuroka(Vector paikka, double leveys, double korkeus)
102    {
103        Rekuroka = new PhysicsObject (leveys, korkeus, Shape.Circle);
104        Rekuroka.Image = RekurokaI;
105        Rekuroka.Restitution = 0.0;
106        Rekuroka.Position = paikka;
107        AddCollisionHandler(Rekuroka, "LuoTahti", Tormays1);
108        AddCollisionHandler(Rekuroka, "LuoPiste", Tormays2);
109        AddCollisionHandler(Rekuroka, "Kuolema", Tormays3);
110        AddCollisionHandler(Rekuroka, "UusiKentta", Tormays4);
111        Add(Rekuroka);
112    }
113
114    void LuoSerunom(Vector paikka, double leveys, double korkeus)
115    {
116        Serunom = new PhysicsObject(leveys, korkeus);
117        Serunom.Image = SerunomI;
118        Serunom.Restitution = 0.0;
119        Serunom.Position = paikka;
120        Serunom.Tag = "UusiKentta";
121        Add(Serunom);
122    }
123
124    void LuoMerinoma(Vector paikka, double leveys, double korkeus)
125    {
126        Merinoma = new PhysicsObject(leveys, korkeus);
127        Merinoma.Image = MerinomaI;
128        Merinoma.Restitution = 0.0;
129        Merinoma.Position = paikka;
130        Merinoma.Tag = "Kuolema";
131        Add(Merinoma);
132    }
133
134    void Vih1(Vector paikka, double leveys, double korkeus)
135    {
136        PhysicsObject Vih1 = new PhysicsObject(leveys, korkeus);
137        Vih1.Image = Vih1I;
138        Vih1.Restitution = 0.0;
139        Vih1.Position = paikka;
140        Add(Vih1);
141    }
142
143    void Vih2(Vector paikka, double leveys, double korkeus)
144    {
145        PhysicsObject Vih2 = new PhysicsObject(leveys, korkeus);
146        Vih2.Image = Vih2I;
147        Vih2.Restitution = 0.0;
148        Vih2.Position = paikka;
149        Add(Vih2);
150    }
151
152    void Vih3(Vector paikka, double leveys, double korkeus)
153    {
154        PhysicsObject Vih3 = new PhysicsObject(leveys, korkeus);
155        Vih3.Image = Vih3I;
156        Vih3.Restitution = 0.0;
157        Vih3.Position = paikka;
158        Add(Vih3);
159    }
160
161    void LuoPalikka(Vector paikka, double leveys, double korkeus)
162    {
163        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
164        palikka.Shape = Shape.Rectangle;
165        palikka.Color = Color.Green;
166        palikka.Restitution = 0.0;
167        palikka.Position = paikka;
168        palikka.CollisionIgnoreGroup = 1;
169        Add(palikka);
170    }
171
172    void LuoTahti(Vector paikka, double leveys, double korkeus)
173    {
174        PhysicsObject tahti = new PhysicsObject(leveys, korkeus);
175        tahti.Shape = Shape.Star;
176        tahti.Color = Color.Yellow;
177        tahti.Restitution = 0.0;
178        tahti.Position = paikka;
179        tahti.Tag = "LuoTahti";
180        Add(tahti);
181    }
182
183    void LuoPiste(Vector paikka, double leveys, double korkeus)
184    {
185        PhysicsObject piste = new PhysicsObject(leveys, korkeus);
186        piste.Shape = Shape.Circle;
187        piste.Color = Color.YellowGreen;
188        piste.Restitution = 0.0;
189        piste.Position = paikka;
190        piste.Tag = "LuoPiste";
191        Add(piste);
192    }
193
194    void AsetaOhjaimet()
195    {
196       Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 200));
197       Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -200));
198       Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, null, new Vector(200, 0));
199       Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-200, 0)); 
200
201        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
202        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
203    }
204
205    void LiikutaPelaajaa(Vector suunta)
206    {
207        Rekuroka.Push(suunta);
208    }
209
210    void Tormays1(IPhysicsObject tormaaja, IPhysicsObject kohde)
211    {
212        kohde.Destroy();
213        Pistelaskuri.Value = Pistelaskuri.Value + 1;
214        MediaPlayer.Play("Tahti");
215    }
216
217    void Tormays2(IPhysicsObject tormaaja, IPhysicsObject kohde)
218    {
219        kohde.Destroy();
220        Pistelaskuri.Value = Pistelaskuri.Value + 5;
221        MediaPlayer.Play("Pallo");
222    }
223
224    void Tormays3(IPhysicsObject Rekuroka, IPhysicsObject kohde)
225    {
226        AloitaAlusta();
227        Kuolema.Play();
228    }
229
230    void Tormays4(IPhysicsObject Rekuroka, IPhysicsObject kohde)
231    {
232        if (kohde == Serunom)
233        {
234            kenttaNro++;
235            SeuraavaKentta(kenttaNro);
236        }
237    }
238
239    void PainettiinValikkoNappia(int valinta)
240    {
241        switch (valinta) 
242        { 
243            case 0:
244                SeuraavaKentta(kenttaNro);
245                break;
246            case 1:
247                        HighScoreWindow topIkkuna = new HighScoreWindow(
248            "Parhaat Pisteet",
249            "",
250            topLista);
251        topIkkuna.Closed += TallennaPisteet;
252        Add(topIkkuna);
253                break;
254            case 2:
255                Exit();
256                break;
257        }
258    }
259
260    void LuoLaskuri()
261    {
262        Pistelaskuri = new IntMeter(0);
263
264        Label pistenaytto = new Label();
265        pistenaytto.X = Screen.Left + 100;
266        pistenaytto.Y = Screen.Top - 100;
267        pistenaytto.TextColor = Color.Black;
268        pistenaytto.Color = Color.White;
269
270        pistenaytto.BindTo(Pistelaskuri);
271        Add(pistenaytto);
272    }
273
274    void LuoAikaLaskuri()
275    {
276        Timer aikaLaskuri = new Timer();
277        aikaLaskuri.Start();
278
279        Label aikaNaytto = new Label();
280        aikaNaytto.X = Screen.Left + 100;
281        aikaNaytto.Y = Screen.Top - 70;
282        aikaNaytto.TextColor = Color.White;
283        aikaNaytto.DecimalPlaces = 1;
284        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
285        Add(aikaNaytto);
286    }
287
288    void AloitaAlusta()
289    {
290        ClearAll();
291        SeuraavaKentta(kenttaNro);
292    }
293}
Note: See TracBrowser for help on using the repository browser.