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

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