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

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